diff --git a/.gitignore b/.gitignore
index 692e056954..79927b784d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,9 @@
*.iml
-wear/wear.iml
.gradle
/local.properties
-/.idea/workspace.xml
-/.idea/libraries
.DS_Store
/build
/captures
+*.apk
+build/
+.idea/
diff --git a/.idea/.name b/.idea/.name
deleted file mode 100644
index b53cf7e34f..0000000000
--- a/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-AndroidAPS
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index 96cc43efa6..0000000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
deleted file mode 100644
index e7bedf3377..0000000000
--- a/.idea/copyright/profiles_settings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
deleted file mode 100644
index 97626ba454..0000000000
--- a/.idea/encodings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
deleted file mode 100644
index 2cb270bcda..0000000000
--- a/.idea/gradle.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
deleted file mode 100644
index 491c025e3d..0000000000
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
deleted file mode 100644
index 3b312839bf..0000000000
--- a/.idea/inspectionProfiles/profiles_settings.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index fbb68289f4..0000000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index beeeadee79..0000000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
deleted file mode 100644
index 7f68460d8b..0000000000
--- a/.idea/runConfigurations.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 94a25f7f4c..0000000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 9740cf7335..18cf49f1b8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,7 +44,7 @@ android {
minSdkVersion 21
targetSdkVersion 23
versionCode 1100
- versionName "1.1"
+ versionName "1.1g"
buildConfigField "String", "BUILDVERSION", generateGitBuild()
}
lintOptions {
@@ -70,7 +70,7 @@ android {
dimension "limits"
buildConfigField "int", "MAXBOLUS", "5"
}
- full {
+ full {
dimension "standard"
buildConfigField "boolean", "APS", "true"
buildConfigField "boolean", "PUMPDRIVERS", "true"
@@ -97,25 +97,47 @@ android {
wear {
dimension "wear"
buildConfigField "boolean", "WEAR", "true"
+ buildConfigField "boolean", "WEAR_CONTROL", "false"
+
+ }
+ wearcontrol {
+ dimension "wear"
+ buildConfigField "boolean", "WEAR", "true"
+ buildConfigField "boolean", "WEAR_CONTROL", "true"
}
nowear {
dimension "wear"
buildConfigField "boolean", "WEAR", "false"
+ buildConfigField "boolean", "WEAR_CONTROL", "false"
+ }
+ }
+}
+
+allprojects {
+ repositories {
+ jcenter()
+ flatDir {
+ dirs 'libs'
}
}
}
dependencies {
- wearWearApp project(path: ':wear', configuration: 'fullRelease')
+ wearWearApp project(path: ':wear', configuration: 'restrictedRelease')
+ wearcontrolWearApp project(path: ':wear', configuration: 'fullRelease')
+
compile fileTree(include: ['*.jar'], dir: 'libs')
compile('com.crashlytics.sdk.android:crashlytics:2.5.7@aar') {
transitive = true;
}
+
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:support-v4:23.4.0'
compile 'com.android.support:cardview-v7:23.4.0'
compile 'com.android.support:recyclerview-v7:23.4.0'
compile 'com.android.support:gridlayout-v7:23.4.0'
+ compile "com.android.support:design:23.4.0"
+ compile "com.android.support:percent:23.4.0"
compile 'com.wdullaer:materialdatetimepicker:2.3.0'
compile 'com.squareup:otto:1.3.7'
compile 'com.j256.ormlite:ormlite-core:4.46'
@@ -134,4 +156,6 @@ dependencies {
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')
+
+}
\ No newline at end of file
diff --git a/app/libs/android-edittext-validator-v1.3.4-mod.aar b/app/libs/android-edittext-validator-v1.3.4-mod.aar
new file mode 100644
index 0000000000..e08904b772
Binary files /dev/null and b/app/libs/android-edittext-validator-v1.3.4-mod.aar differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d49ee22092..8f500c4421 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -33,9 +33,12 @@
+
+
+
diff --git a/app/src/main/assets/OpenAPSAMA/basal-set-temp.js b/app/src/main/assets/OpenAPSAMA/basal-set-temp.js
new file mode 100644
index 0000000000..9745869194
--- /dev/null
+++ b/app/src/main/assets/OpenAPSAMA/basal-set-temp.js
@@ -0,0 +1,61 @@
+'use strict';
+
+function reason(rT, msg) {
+ rT.reason = (rT.reason ? rT.reason + '. ' : '') + msg;
+ console.error(msg);
+}
+
+var tempBasalFunctions = {};
+
+tempBasalFunctions.getMaxSafeBasal = function getMaxSafeBasal(profile) {
+
+ var max_daily_safety_multiplier = (isNaN(profile.max_daily_safety_multiplier) || profile.max_daily_safety_multiplier == null) ? 3 : profile.max_daily_safety_multiplier;
+ var current_basal_safety_multiplier = (isNaN(profile.current_basal_safety_multiplier) || profile.current_basal_safety_multiplier == null) ? 4 : profile.current_basal_safety_multiplier;
+
+ return Math.min(profile.max_basal, max_daily_safety_multiplier * profile.max_daily_basal, current_basal_safety_multiplier * profile.current_basal);
+};
+
+tempBasalFunctions.setTempBasal = function setTempBasal(rate, duration, profile, rT, currenttemp) {
+ //var maxSafeBasal = Math.min(profile.max_basal, 3 * profile.max_daily_basal, 4 * profile.current_basal);
+
+ var maxSafeBasal = tempBasalFunctions.getMaxSafeBasal(profile);
+var round_basal = require('./round-basal');
+
+ if (rate < 0) {
+ rate = 0;
+ } // if >30m @ 0 required, zero temp will be extended to 30m instead
+ else if (rate > maxSafeBasal) {
+ rate = maxSafeBasal;
+ }
+
+ var suggestedRate = round_basal(rate, profile);
+ if (typeof(currenttemp) !== 'undefined' && typeof(currenttemp.duration) !== 'undefined' && typeof(currenttemp.rate) !== 'undefined' && currenttemp.duration > 20 && suggestedRate <= currenttemp.rate * 1.2 && suggestedRate >= currenttemp.rate * 0.8) {
+ rT.reason += ", but "+currenttemp.duration+"m left and " + currenttemp.rate + " ~ req " + suggestedRate + "U/hr: no action required";
+ return rT;
+ }
+
+ if (suggestedRate === profile.current_basal) {
+ if (profile.skip_neutral_temps) {
+ if (typeof(currenttemp) !== 'undefined' && typeof(currenttemp.duration) !== 'undefined' && currenttemp.duration > 0) {
+ reason(rT, 'Suggested rate is same as profile rate, a temp basal is active, canceling current temp');
+ rT.duration = 0;
+ rT.rate = 0;
+ return rT;
+ } else {
+ reason(rT, 'Suggested rate is same as profile rate, no temp basal is active, doing nothing');
+ return rT;
+ }
+ } else {
+ reason(rT, 'Setting neutral temp basal of ' + profile.current_basal + 'U/hr');
+ rT.duration = duration;
+ rT.rate = suggestedRate;
+ return rT;
+ }
+ } else {
+ rT.duration = duration;
+ rT.rate = suggestedRate;
+ return rT;
+ }
+};
+
+module.exports = tempBasalFunctions;
diff --git a/app/src/main/assets/OpenAPSAMA/determine-basal.js b/app/src/main/assets/OpenAPSAMA/determine-basal.js
new file mode 100644
index 0000000000..ac4fe2598c
--- /dev/null
+++ b/app/src/main/assets/OpenAPSAMA/determine-basal.js
@@ -0,0 +1,498 @@
+/*
+ Determine Basal
+
+ Released under MIT license. See the accompanying LICENSE.txt file for
+ full terms and conditions
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+*/
+
+
+var round_basal = require('../round-basal')
+
+// Rounds value to 'digits' decimal places
+function round(value, digits)
+{
+ var scale = Math.pow(10, digits);
+ return Math.round(value * scale) / scale;
+}
+
+// we expect BG to rise or fall at the rate of BGI,
+// adjusted by the rate at which BG would need to rise /
+// fall to get eventualBG to target over DIA/2 hours
+function calculate_expected_delta(dia, target_bg, eventual_bg, bgi) {
+ // (hours * mins_per_hour) / 5 = how many 5 minute periods in dia/2
+ var dia_in_5min_blocks = (dia/2 * 60) / 5;
+ var target_delta = target_bg - eventual_bg;
+ var expectedDelta = round(bgi + (target_delta / dia_in_5min_blocks), 1);
+ return expectedDelta;
+}
+
+
+function convert_bg(value, profile)
+{
+ if (profile.out_units == "mmol/L")
+ {
+ return round(value / 18, 1).toFixed(1);
+ }
+ else
+ {
+ return value.toFixed(0);
+ }
+}
+
+var determine_basal = function determine_basal(glucose_status, currenttemp, iob_data, profile, autosens_data, meal_data, tempBasalFunctions) {
+ var rT = { //short for requestedTemp
+ };
+
+ if (typeof profile === 'undefined' || typeof profile.current_basal === 'undefined') {
+ rT.error ='Error: could not get current basal rate';
+ return rT;
+ }
+ var basal = profile.current_basal;
+ if (typeof autosens_data !== 'undefined' ) {
+ basal = profile.current_basal * autosens_data.ratio;
+ basal = round_basal(basal, profile);
+ if (basal != profile.current_basal) {
+ console.error("Adjusting basal from "+profile.current_basal+" to "+basal);
+ }
+ }
+
+ var bg = glucose_status.glucose;
+ // TODO: figure out how to use raw isig data to estimate BG
+ if (bg < 39) { //Dexcom is in ??? mode or calibrating
+ rT.reason = "CGM is calibrating or in ??? state";
+ if (basal <= currenttemp.rate * 1.2) { // high temp is running
+ rT.reason += "; setting current basal of " + basal + " as temp";
+ return tempBasalFunctions.setTempBasal(basal, 30, profile, rT, currenttemp);
+ } else { //do nothing.
+ rT.reason += ", temp " + currenttemp.rate + " <~ current basal " + basal + "U/hr";
+ return rT;
+ }
+ }
+
+ var max_iob = profile.max_iob; // maximum amount of non-bolus IOB OpenAPS will ever deliver
+
+ // if target_bg is set, great. otherwise, if min and max are set, then set target to their average
+ var target_bg;
+ var min_bg;
+ var max_bg;
+ if (typeof profile.min_bg !== 'undefined') {
+ min_bg = profile.min_bg;
+ }
+ if (typeof profile.max_bg !== 'undefined') {
+ max_bg = profile.max_bg;
+ }
+ if (typeof profile.target_bg !== 'undefined') {
+ target_bg = profile.target_bg;
+ } else {
+ if (typeof profile.min_bg !== 'undefined' && typeof profile.max_bg !== 'undefined') {
+ target_bg = (profile.min_bg + profile.max_bg) / 2;
+ } else {
+ rT.error ='Error: could not determine target_bg';
+ return rT;
+ }
+ }
+
+ // adjust min, max, and target BG for sensitivity, such that 50% increase in ISF raises target from 100 to 120
+ if (typeof autosens_data !== 'undefined' && profile.autosens_adjust_targets) {
+ if (profile.temptargetSet) {
+ console.error("Temp Target set, not adjusting with autosens");
+ } else {
+ min_bg = Math.round((min_bg - 60) / autosens_data.ratio) + 60;
+ max_bg = Math.round((max_bg - 60) / autosens_data.ratio) + 60;
+ new_target_bg = Math.round((target_bg - 60) / autosens_data.ratio) + 60;
+ if (target_bg == new_target_bg) {
+ console.error("target_bg unchanged:", new_target_bg);
+ } else {
+ console.error("Adjusting target_bg from", target_bg, "to", new_target_bg);
+ }
+ target_bg = new_target_bg;
+ }
+ }
+
+ if (typeof iob_data === 'undefined' ) {
+ rT.error ='Error: iob_data undefined';
+ return rT;
+ }
+
+ var iobArray = iob_data;
+ if (typeof(iob_data.length) && iob_data.length > 1) {
+ iob_data = iobArray[0];
+ //console.error(JSON.stringify(iob_data[0]));
+ }
+
+ if (typeof iob_data.activity === 'undefined' || typeof iob_data.iob === 'undefined' ) {
+ rT.error ='Error: iob_data missing some property';
+ return rT;
+ }
+
+ var tick;
+
+ if (glucose_status.delta > -0.5) {
+ tick = "+" + round(glucose_status.delta,0);
+ } else {
+ tick = round(glucose_status.delta,0);
+ }
+ var minDelta = Math.min(glucose_status.delta, glucose_status.short_avgdelta, glucose_status.long_avgdelta);
+ var minAvgDelta = Math.min(glucose_status.short_avgdelta, glucose_status.long_avgdelta);
+
+ var sens = profile.sens;
+ if (typeof autosens_data !== 'undefined' ) {
+ sens = profile.sens / autosens_data.ratio;
+ sens = round(sens, 1);
+ if (sens != profile.sens) {
+ console.error("Adjusting sens from "+profile.sens+" to "+sens);
+ }
+ }
+
+ //calculate BG impact: the amount BG "should" be rising or falling based on insulin activity alone
+ var bgi = round(( -iob_data.activity * sens * 5 ), 2);
+ // project deviations for 30 minutes
+ var deviation = Math.round( 30 / 5 * ( minDelta - bgi ) );
+ // don't overreact to a big negative delta: use minAvgDelta if deviation is negative
+ if (deviation < 0) {
+ deviation = Math.round( (30 / 5) * ( minAvgDelta - bgi ) );
+ }
+
+ // calculate the naive (bolus calculator math) eventual BG based on net IOB and sensitivity
+ if (iob_data.iob > 0) {
+ var naive_eventualBG = Math.round( bg - (iob_data.iob * sens) );
+ } else { // if IOB is negative, be more conservative and use the lower of sens, profile.sens
+ var naive_eventualBG = Math.round( bg - (iob_data.iob * Math.min(sens, profile.sens) ) );
+ }
+ // and adjust it for the deviation above
+ var eventualBG = naive_eventualBG + deviation;
+ // calculate what portion of that is due to bolussnooze
+ var bolusContrib = iob_data.bolussnooze * sens;
+ // and add it back in to get snoozeBG, plus another 50% to avoid low-temping at mealtime
+ var naive_snoozeBG = Math.round( naive_eventualBG + 1.5 * bolusContrib );
+ // adjust that for deviation like we did eventualBG
+ var snoozeBG = naive_snoozeBG + deviation;
+
+ var expectedDelta = calculate_expected_delta(profile.dia, target_bg, eventualBG, bgi);
+ if (typeof eventualBG === 'undefined' || isNaN(eventualBG)) {
+ rT.error ='Error: could not calculate eventualBG';
+ return rT;
+ }
+
+ // min_bg of 90 -> threshold of 70, 110 -> 80, and 130 -> 90
+ var threshold = min_bg - 0.5*(min_bg-50);
+
+ rT = {
+ 'temp': 'absolute'
+ , 'bg': bg
+ , 'tick': tick
+ , 'eventualBG': eventualBG
+ , 'snoozeBG': snoozeBG
+ };
+
+ var basaliob;
+ if (iob_data.basaliob) { basaliob = iob_data.basaliob; }
+ else { basaliob = iob_data.iob - iob_data.bolussnooze; }
+
+ // generate predicted future BGs based on IOB, COB, and current absorption rate
+
+ var COBpredBGs = [];
+ var aCOBpredBGs = [];
+ var IOBpredBGs = [];
+ COBpredBGs.push(bg);
+ aCOBpredBGs.push(bg);
+ IOBpredBGs.push(bg);
+ //console.error(meal_data);
+ // carb impact and duration are 0 unless changed below
+ var ci = 0;
+ var cid = 0;
+ // calculate current carb absorption rate, and how long to absorb all carbs
+ // CI = current carb impact on BG in mg/dL/5m
+ ci = Math.round((minDelta - bgi)*10)/10;
+ if (meal_data.mealCOB * 2 > meal_data.carbs) {
+ // set ci to a minimum of 3mg/dL/5m (default) if less than half of carbs have absorbed
+ ci = Math.max(profile.min_5m_carbimpact, ci);
+ }
+ aci = 10;
+ //5m data points = g * (1U/10g) * (40mg/dL/1U) / (mg/dL/5m)
+ cid = meal_data.mealCOB * ( sens / profile.carb_ratio ) / ci;
+ acid = meal_data.mealCOB * ( sens / profile.carb_ratio ) / aci;
+ console.error("Carb Impact:",ci,"mg/dL per 5m; CI Duration:",Math.round(10*cid/6)/10,"hours");
+ console.error("Accel. Carb Impact:",aci,"mg/dL per 5m; ACI Duration:",Math.round(10*acid/6)/10,"hours");
+ var minPredBG = 999;
+ var maxPredBG = bg;
+ var eventualPredBG = bg;
+ try {
+ iobArray.forEach(function(iobTick) {
+ //console.error(iobTick);
+ predBGI = round(( -iobTick.activity * sens * 5 ), 2);
+ // predicted deviation impact drops linearly from current deviation down to zero
+ // over 60 minutes (data points every 5m)
+ predDev = ci * ( 1 - Math.min(1,IOBpredBGs.length/(60/5)) );
+ IOBpredBG = IOBpredBGs[IOBpredBGs.length-1] + predBGI + predDev;
+ //IOBpredBG = IOBpredBGs[IOBpredBGs.length-1] + predBGI;
+ // predicted carb impact drops linearly from current carb impact down to zero
+ // eventually accounting for all carbs (if they can be absorbed over DIA)
+ predCI = Math.max(0, ci * ( 1 - COBpredBGs.length/Math.max(cid*2,1) ) );
+ predACI = Math.max(0, aci * ( 1 - COBpredBGs.length/Math.max(acid*2,1) ) );
+ COBpredBG = COBpredBGs[COBpredBGs.length-1] + predBGI + Math.min(0,predDev) + predCI;
+ aCOBpredBG = aCOBpredBGs[aCOBpredBGs.length-1] + predBGI + Math.min(0,predDev) + predACI;
+ //console.error(predBGI, predCI, predBG);
+ IOBpredBGs.push(IOBpredBG);
+ COBpredBGs.push(COBpredBG);
+ aCOBpredBGs.push(aCOBpredBG);
+ // wait 45m before setting minPredBG
+ if ( COBpredBGs.length > 9 && (COBpredBG < minPredBG) ) { minPredBG = COBpredBG; }
+ if ( COBpredBG > maxPredBG ) { maxPredBG = COBpredBG; }
+ });
+ // set eventualBG to include effect of carbs
+ //console.error("PredBGs:",JSON.stringify(predBGs));
+ } catch (e) {
+ console.error("Problem with iobArray. Optional feature Advanced Meal Assist disabled.");
+ }
+ rT.predBGs = {};
+ IOBpredBGs.forEach(function(p, i, theArray) {
+ theArray[i] = Math.round(Math.min(401,Math.max(39,p)));
+ });
+ for (var i=IOBpredBGs.length-1; i > 12; i--) {
+ if (IOBpredBGs[i-1] != IOBpredBGs[i]) { break; }
+ else { IOBpredBGs.pop(); }
+ }
+ rT.predBGs.IOB = IOBpredBGs;
+ if (meal_data.mealCOB > 0) {
+ aCOBpredBGs.forEach(function(p, i, theArray) {
+ theArray[i] = Math.round(Math.min(401,Math.max(39,p)));
+ });
+ for (var i=aCOBpredBGs.length-1; i > 12; i--) {
+ if (aCOBpredBGs[i-1] != aCOBpredBGs[i]) { break; }
+ else { aCOBpredBGs.pop(); }
+ }
+ rT.predBGs.aCOB = aCOBpredBGs;
+ }
+ if (meal_data.mealCOB > 0 && ci > 0 ) {
+ COBpredBGs.forEach(function(p, i, theArray) {
+ theArray[i] = Math.round(Math.min(401,Math.max(39,p)));
+ });
+ for (var i=COBpredBGs.length-1; i > 12; i--) {
+ if (COBpredBGs[i-1] != COBpredBGs[i]) { break; }
+ else { COBpredBGs.pop(); }
+ }
+ rT.predBGs.COB = COBpredBGs;
+ eventualBG = Math.max(eventualBG, Math.round(COBpredBGs[COBpredBGs.length-1]) );
+ rT.eventualBG = eventualBG;
+ minPredBG = Math.min(minPredBG, eventualBG);
+ // set snoozeBG to minPredBG
+ snoozeBG = Math.round(Math.max(snoozeBG,minPredBG));
+ rT.snoozeBG = snoozeBG;
+ }
+
+ rT.COB=meal_data.mealCOB;
+ rT.IOB=iob_data.iob;
+ rT.reason="COB: " + meal_data.mealCOB + ", Dev: " + deviation + ", BGI: " + bgi + ", ISF: " + convert_bg(sens, profile) + ", Target: " + convert_bg(target_bg, profile) + "; ";
+ if (bg < threshold) { // low glucose suspend mode: BG is < ~80
+ rT.reason += "BG " + convert_bg(bg, profile) + "<" + convert_bg(threshold, profile);
+ if ((glucose_status.delta <= 0 && minDelta <= 0) || (glucose_status.delta < expectedDelta && minDelta < expectedDelta) || bg < 60 ) {
+ // BG is still falling / rising slower than predicted
+ return tempBasalFunctions.setTempBasal(0, 30, profile, rT, currenttemp);
+ }
+ if (glucose_status.delta > minDelta) {
+ rT.reason += ", delta " + glucose_status.delta + ">0";
+ } else {
+ rT.reason += ", min delta " + minDelta.toFixed(2) + ">0";
+ }
+ if (currenttemp.duration > 15 && (round_basal(basal, profile) === round_basal(currenttemp.rate, profile))) {
+ rT.reason += ", temp " + currenttemp.rate + " ~ req " + basal + "U/hr";
+ return rT;
+ } else {
+ rT.reason += "; setting current basal of " + basal + " as temp";
+ return tempBasalFunctions.setTempBasal(basal, 30, profile, rT, currenttemp);
+ }
+ }
+
+ if (eventualBG < min_bg) { // if eventual BG is below target:
+ rT.reason += "Eventual BG " + convert_bg(eventualBG, profile) + " < " + convert_bg(min_bg, profile);
+ // if 5m or 30m avg BG is rising faster than expected delta
+ if (minDelta > expectedDelta && minDelta > 0) {
+ if (glucose_status.delta > minDelta) {
+ rT.reason += ", but Delta " + tick + " > Exp. Delta " + expectedDelta;
+ } else {
+ rT.reason += ", but Min. Delta " + minDelta.toFixed(2) + " > Exp. Delta " + expectedDelta;
+ }
+ if (currenttemp.duration > 15 && (round_basal(basal, profile) === round_basal(currenttemp.rate, profile))) {
+ rT.reason += ", temp " + currenttemp.rate + " ~ req " + basal + "U/hr";
+ return rT;
+ } else {
+ rT.reason += "; setting current basal of " + basal + " as temp";
+ return tempBasalFunctions.setTempBasal(basal, 30, profile, rT, currenttemp);
+ }
+ }
+
+ if (eventualBG < min_bg) {
+ // if we've bolused recently, we can snooze until the bolus IOB decays (at double speed)
+ if (snoozeBG > min_bg) { // if adding back in the bolus contribution BG would be above min
+ rT.reason += ", bolus snooze: eventual BG range " + convert_bg(eventualBG, profile) + "-" + convert_bg(snoozeBG, profile);
+ //console.error(currenttemp, basal );
+ if (currenttemp.duration > 15 && (round_basal(basal, profile) === round_basal(currenttemp.rate, profile))) {
+ rT.reason += ", temp " + currenttemp.rate + " ~ req " + basal + "U/hr";
+ return rT;
+ } else {
+ rT.reason += "; setting current basal of " + basal + " as temp";
+ return tempBasalFunctions.setTempBasal(basal, 30, profile, rT, currenttemp);
+ }
+ } else {
+ // calculate 30m low-temp required to get projected BG up to target
+ // use snoozeBG to more gradually ramp in any counteraction of the user's boluses
+ // multiply by 2 to low-temp faster for increased hypo safety
+ var insulinReq = 2 * Math.min(0, (snoozeBG - target_bg) / sens);
+ insulinReq = round( insulinReq , 2);
+ if (minDelta < 0 && minDelta > expectedDelta) {
+ // if we're barely falling, newinsulinReq should be barely negative
+ rT.reason += ", Snooze BG " + convert_bg(snoozeBG, profile);
+ var newinsulinReq = round(( insulinReq * (minDelta / expectedDelta) ), 2);
+ //console.error("Increasing insulinReq from " + insulinReq + " to " + newinsulinReq);
+ insulinReq = newinsulinReq;
+ }
+ // rate required to deliver insulinReq less insulin over 30m:
+ var rate = basal + (2 * insulinReq);
+ rate = round_basal(rate, profile);
+ // if required temp < existing temp basal
+ var insulinScheduled = currenttemp.duration * (currenttemp.rate - basal) / 60;
+ if (insulinScheduled < insulinReq - basal*0.3) { // if current temp would deliver a lot (30% of basal) less than the required insulin, raise the rate
+ rT.reason += ", "+currenttemp.duration + "m@" + (currenttemp.rate - basal).toFixed(3) + " = " + insulinScheduled.toFixed(3) + " < req " + insulinReq + "-" + basal*0.3;
+ return tempBasalFunctions.setTempBasal(rate, 30, profile, rT, currenttemp);
+ }
+ if (typeof currenttemp.rate !== 'undefined' && (currenttemp.duration > 5 && rate >= currenttemp.rate * 0.8)) {
+ rT.reason += ", temp " + currenttemp.rate + " ~< req " + rate + "U/hr";
+ return rT;
+ } else {
+ rT.reason += ", setting " + rate + "U/hr";
+ return tempBasalFunctions.setTempBasal(rate, 30, profile, rT, currenttemp);
+ }
+ }
+ }
+ }
+
+ var minutes_running;
+ if (typeof currenttemp.duration == 'undefined' || currenttemp.duration == 0) {
+ minutes_running = 30;
+ } else if (typeof currenttemp.minutesrunning !== 'undefined'){
+ // If the time the current temp is running is not defined, use default request duration of 30 minutes.
+ minutes_running = currenttemp.minutesrunning;
+ } else {
+ minutes_running = 30 - currenttemp.duration;
+ }
+
+ // if there is a low-temp running, and eventualBG would be below min_bg without it, let it run
+ if (round_basal(currenttemp.rate, profile) < round_basal(basal, profile) ) {
+ var lowtempimpact = (currenttemp.rate - basal) * ((30-minutes_running)/60) * sens;
+ var adjEventualBG = eventualBG + lowtempimpact;
+ if ( adjEventualBG < min_bg ) {
+ rT.reason += "letting low temp of " + currenttemp.rate + " run.";
+ return rT;
+ }
+ }
+
+ // if eventual BG is above min but BG is falling faster than expected Delta
+ if (minDelta < expectedDelta) {
+ if (glucose_status.delta < minDelta) {
+ rT.reason += "Eventual BG " + convert_bg(eventualBG, profile) + " > " + convert_bg(min_bg, profile) + " but Delta " + tick + " < Exp. Delta " + expectedDelta;
+ } else {
+ rT.reason += "Eventual BG " + convert_bg(eventualBG, profile) + " > " + convert_bg(min_bg, profile) + " but Min. Delta " + minDelta.toFixed(2) + " < Exp. Delta " + expectedDelta;
+ }
+ if (currenttemp.duration > 15 && (round_basal(basal, profile) === round_basal(currenttemp.rate, profile))) {
+ rT.reason += ", temp " + currenttemp.rate + " ~ req " + basal + "U/hr";
+ return rT;
+ } else {
+ rT.reason += "; setting current basal of " + basal + " as temp";
+ return tempBasalFunctions.setTempBasal(basal, 30, profile, rT, currenttemp);
+ }
+ }
+ // eventualBG or snoozeBG (from minPredBG) is below max_bg
+ if (eventualBG < max_bg || snoozeBG < max_bg) {
+ // if there is a high-temp running and eventualBG > max_bg, let it run
+ if (eventualBG > max_bg && round_basal(currenttemp.rate, profile) > round_basal(basal, profile) ) {
+ rT.reason += ", " + eventualBG + " > " + max_bg + ": no action required (letting high temp of " + currenttemp.rate + " run)."
+ return rT;
+ }
+
+ rT.reason += convert_bg(eventualBG, profile)+"-"+convert_bg(snoozeBG, profile)+" in range: no temp required";
+ if (currenttemp.duration > 15 && (round_basal(basal, profile) === round_basal(currenttemp.rate, profile))) {
+ rT.reason += ", temp " + currenttemp.rate + " ~ req " + basal + "U/hr";
+ return rT;
+ } else {
+ rT.reason += "; setting current basal of " + basal + " as temp";
+ return tempBasalFunctions.setTempBasal(basal, 30, profile, rT, currenttemp);
+ }
+ }
+
+ // eventual BG is at/above target:
+ // if iob is over max, just cancel any temps
+ var basaliob;
+ if (iob_data.basaliob) { basaliob = iob_data.basaliob; }
+ else { basaliob = iob_data.iob - iob_data.bolussnooze; }
+ rT.reason += "Eventual BG " + convert_bg(eventualBG, profile) + " >= " + convert_bg(max_bg, profile) + ", ";
+ if (basaliob > max_iob) {
+ rT.reason += "basaliob " + round(basaliob,2) + " > max_iob " + max_iob;
+ if (currenttemp.duration > 15 && (round_basal(basal, profile) === round_basal(currenttemp.rate, profile))) {
+ rT.reason += ", temp " + currenttemp.rate + " ~ req " + basal + "U/hr";
+ return rT;
+ } else {
+ rT.reason += "; setting current basal of " + basal + " as temp";
+ return tempBasalFunctions.setTempBasal(basal, 30, profile, rT, currenttemp);
+ }
+ } else { // otherwise, calculate 30m high-temp required to get projected BG down to target
+
+ // insulinReq is the additional insulin required to get down to max bg:
+ // if in meal assist mode, check if snoozeBG is lower, as eventualBG is not dependent on IOB
+ var insulinReq = round( (Math.min(snoozeBG,eventualBG) - target_bg) / sens, 2);
+ if (minDelta < 0 && minDelta > expectedDelta) {
+ var newinsulinReq = round(( insulinReq * (1 - (minDelta / expectedDelta)) ), 2);
+ //console.error("Reducing insulinReq from " + insulinReq + " to " + newinsulinReq);
+ insulinReq = newinsulinReq;
+ }
+ // if that would put us over max_iob, then reduce accordingly
+ if (insulinReq > max_iob-basaliob) {
+ rT.reason += "max_iob " + max_iob + ", ";
+ insulinReq = max_iob-basaliob;
+ }
+
+ // rate required to deliver insulinReq more insulin over 30m:
+ var rate = basal + (2 * insulinReq);
+ rate = round_basal(rate, profile);
+
+// var maxSafeBasal = Math.min(profile.max_basal, 3 * profile.max_daily_basal, 4 * basal);
+
+ var maxSafeBasal = tempBasalFunctions.getMaxSafeBasal(profile);
+
+ if (rate > maxSafeBasal) {
+ rT.reason += "adj. req. rate: "+rate+" to maxSafeBasal: "+maxSafeBasal+", ";
+ rate = round_basal(maxSafeBasal, profile);
+ }
+
+ var insulinScheduled = currenttemp.duration * (currenttemp.rate - basal) / 60;
+ if (insulinScheduled >= insulinReq * 2) { // if current temp would deliver >2x more than the required insulin, lower the rate
+ rT.reason += currenttemp.duration + "m@" + (currenttemp.rate - basal).toFixed(3) + " = " + insulinScheduled.toFixed(3) + " > 2 * req " + insulinReq + ". Setting temp basal of " + rate + "U/hr";
+ return tempBasalFunctions.setTempBasal(rate, 30, profile, rT, currenttemp);
+ }
+
+ if (typeof currenttemp.duration == 'undefined' || currenttemp.duration == 0) { // no temp is set
+ rT.reason += "no temp, setting " + rate + "U/hr";
+ return tempBasalFunctions.setTempBasal(rate, 30, profile, rT, currenttemp);
+ }
+
+ if (currenttemp.duration > 5 && (round_basal(rate, profile) <= round_basal(currenttemp.rate, profile))) { // if required temp <~ existing temp basal
+ rT.reason += "temp " + currenttemp.rate + " >~ req " + rate + "U/hr";
+ return rT;
+ }
+
+ // required temp > existing temp basal
+ rT.reason += "temp " + currenttemp.rate + "<" + rate + "U/hr";
+ return tempBasalFunctions.setTempBasal(rate, 30, profile, rT, currenttemp);
+ }
+
+};
+
+module.exports = determine_basal;
diff --git a/app/src/main/java/info/nightscout/androidaps/Config.java b/app/src/main/java/info/nightscout/androidaps/Config.java
index 62bdc6eb1a..de4dc5d49b 100644
--- a/app/src/main/java/info/nightscout/androidaps/Config.java
+++ b/app/src/main/java/info/nightscout/androidaps/Config.java
@@ -7,7 +7,7 @@ public class Config {
// MAIN FUCTIONALITY
public static final boolean APS = BuildConfig.APS;
// PLUGINS
- public static final boolean OPENAPSMAENABLED = APS;
+ public static final boolean OPENAPSENABLED = APS;
public static final boolean LOOPENABLED = APS;
public static final boolean WEAR = BuildConfig.WEAR;
diff --git a/app/src/main/java/info/nightscout/androidaps/Constants.java b/app/src/main/java/info/nightscout/androidaps/Constants.java
index 6cd7c764dd..52cb5d85a1 100644
--- a/app/src/main/java/info/nightscout/androidaps/Constants.java
+++ b/app/src/main/java/info/nightscout/androidaps/Constants.java
@@ -6,7 +6,7 @@ import com.j256.ormlite.stmt.query.In;
* Created by mike on 07.06.2016.
*/
public class Constants {
- public static final String MGDL = "mg/dl"; // This is Nightscout representation
+ public static final String MGDL = "mg/dl"; // This is Nightscout's representation
public static final String MMOL = "mmol";
public static final double MMOLL_TO_MGDL = 18; // 18.0182;
@@ -24,5 +24,32 @@ public class Constants {
public static final long keepAliveMsecs = 5 * 60 * 1000L;
+ // SMS COMMUNICATOR
public static final long remoteBolusMinDistance = 15 * 60 * 1000L;
+
+ // Circadian Percentage Profile
+ public static final int CPP_MIN_PERCENTAGE = 50;
+ 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";
+
+ // Very Hard Limits Ranges
+ // First value is the Lowest and second value is the Highest a Limit can define
+ public static final int[] VERY_HARD_LIMIT_MIN_BG = {72,180};
+ public static final int[] VERY_HARD_LIMIT_MAX_BG = {90,270};
+ public static final int[] VERY_HARD_LIMIT_TARGET_BG = {80,200};
+
+ // Very Hard Limits Ranges for Temp Targets
+ public static final int[] VERY_HARD_LIMIT_TEMP_MIN_BG = {72,180};
+ public static final int[] VERY_HARD_LIMIT_TEMP_MAX_BG = {72,270};
+ public static final int[] VERY_HARD_LIMIT_TEMP_TARGET_BG = {72,200};
+
+ //DanaR
+ public static final double dailyLimitWarning = 0.95d;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/MainActivity.java b/app/src/main/java/info/nightscout/androidaps/MainActivity.java
index 2bd72f178b..36931ccd5b 100644
--- a/app/src/main/java/info/nightscout/androidaps/MainActivity.java
+++ b/app/src/main/java/info/nightscout/androidaps/MainActivity.java
@@ -1,15 +1,16 @@
package info.nightscout.androidaps;
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.app.Fragment;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AlertDialog;
@@ -17,6 +18,10 @@ import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.EditText;
import com.joanzapata.iconify.Iconify;
import com.joanzapata.iconify.fonts.FontAwesomeModule;
@@ -29,12 +34,12 @@ import info.nightscout.androidaps.events.EventAppExit;
import info.nightscout.androidaps.events.EventPreferenceChange;
import info.nightscout.androidaps.events.EventRefreshGui;
import info.nightscout.androidaps.interfaces.PluginBase;
-import info.nightscout.androidaps.plugins.DanaR.Services.ExecutionService;
-import info.nightscout.androidaps.receivers.KeepAliveReceiver;
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.PasswordProtection;
public class MainActivity extends AppCompatActivity {
private static Logger log = LoggerFactory.getLogger(MainActivity.class);
@@ -121,8 +126,13 @@ public class MainActivity extends AppCompatActivity {
int id = item.getItemId();
switch (id) {
case R.id.nav_preferences:
- Intent i = new Intent(getApplicationContext(), PreferencesActivity.class);
- startActivity(i);
+ PasswordProtection.QueryPassword(this, R.string.settings_password, "settings_password", new Runnable() {
+ @Override
+ public void run() {
+ Intent i = new Intent(getApplicationContext(), PreferencesActivity.class);
+ startActivity(i);
+ }
+ }, null);
break;
case R.id.nav_resetdb:
new AlertDialog.Builder(this)
@@ -145,6 +155,9 @@ public class MainActivity extends AppCompatActivity {
ImportExportPrefs.verifyStoragePermissions(this);
ImportExportPrefs.importSharedPreferences(this);
break;
+ case R.id.nav_show_logcat:
+ LogDialog.showLogcat(this);
+ break;
// case R.id.nav_test_alarm:
// final int REQUEST_CODE_ASK_PERMISSIONS = 2355;
// int permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.SYSTEM_ALERT_WINDOW);
@@ -258,4 +271,21 @@ public class MainActivity extends AppCompatActivity {
}
}
}
+
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent event) {
+ if (event.getAction() == MotionEvent.ACTION_DOWN) {
+ View v = getCurrentFocus();
+ if ( v instanceof EditText) {
+ Rect outRect = new Rect();
+ v.getGlobalVisibleRect(outRect);
+ if (!outRect.contains((int)event.getRawX(), (int)event.getRawY())) {
+ v.clearFocus();
+ InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
+ }
+ }
+ }
+ return super.dispatchTouchEvent(event);
+ }
}
diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.java b/app/src/main/java/info/nightscout/androidaps/MainApp.java
index 2c5f46a259..415e30c1ce 100644
--- a/app/src/main/java/info/nightscout/androidaps/MainApp.java
+++ b/app/src/main/java/info/nightscout/androidaps/MainApp.java
@@ -29,6 +29,7 @@ import info.nightscout.androidaps.plugins.Loop.LoopFragment;
import info.nightscout.androidaps.plugins.MDI.MDIFragment;
import info.nightscout.androidaps.plugins.NSProfile.NSProfileFragment;
import info.nightscout.androidaps.plugins.Objectives.ObjectivesFragment;
+import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAFragment;
import info.nightscout.androidaps.plugins.OpenAPSMA.OpenAPSMAFragment;
import info.nightscout.androidaps.plugins.Overview.OverviewFragment;
import info.nightscout.androidaps.plugins.SafetyFragment.SafetyFragment;
@@ -38,6 +39,7 @@ import info.nightscout.androidaps.plugins.SourceMM640g.SourceMM640gFragment;
import info.nightscout.androidaps.plugins.SourceNSClient.SourceNSClientFragment;
import info.nightscout.androidaps.plugins.SourceXdrip.SourceXdripFragment;
import info.nightscout.androidaps.plugins.TempBasals.TempBasalsFragment;
+import info.nightscout.androidaps.plugins.TempTargetRange.TempTargetRangeFragment;
import info.nightscout.androidaps.plugins.Treatments.TreatmentsFragment;
import info.nightscout.androidaps.plugins.VirtualPump.VirtualPumpFragment;
import info.nightscout.androidaps.plugins.Wear.WearFragment;
@@ -82,11 +84,13 @@ public class MainApp extends Application {
pluginsList.add(MDIFragment.getPlugin());
pluginsList.add(VirtualPumpFragment.getPlugin());
if (Config.LOOPENABLED) pluginsList.add(LoopFragment.getPlugin());
- if (Config.OPENAPSMAENABLED) pluginsList.add(OpenAPSMAFragment.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.APS) pluginsList.add(TempTargetRangeFragment.getPlugin());
pluginsList.add(TreatmentsFragment.getPlugin());
pluginsList.add(TempBasalsFragment.getPlugin());
pluginsList.add(SafetyFragment.getPlugin());
diff --git a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java
index f6edcdd827..f0d60cae19 100644
--- a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java
+++ b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java
@@ -11,13 +11,15 @@ import android.preference.PreferenceFragment;
import android.preference.PreferenceGroup;
import android.preference.PreferenceManager;
+
import info.nightscout.androidaps.events.EventPreferenceChange;
import info.nightscout.androidaps.events.EventRefreshGui;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.plugins.DanaR.BluetoothDevicePreference;
-import info.nightscout.androidaps.plugins.DanaR.DanaRFragment;
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.utils.LocaleHelper;
public class PreferencesActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
@@ -40,6 +42,9 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre
recreate();
MainApp.bus().post(new EventRefreshGui(true));
}
+ if (key.equals("short_tabtitles")) {
+ MainApp.bus().post(new EventRefreshGui(true));
+ }
updatePrefSummary(myPreferenceFragment.getPreference(key));
}
@@ -50,10 +55,10 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre
}
if (pref instanceof EditTextPreference) {
EditTextPreference editTextPref = (EditTextPreference) pref;
- if (pref.getTitle().toString().toLowerCase().contains("password"))
- {
+ if (pref.getKey().contains("password")) {
pref.setSummary("******");
- } else if (editTextPref.getText() != null && !editTextPref.getText().equals("")){
+ } else if (editTextPref.getText() != null && !editTextPref.getText().equals("")) {
+ ((EditTextPreference) pref).setDialogMessage(editTextPref.getDialogMessage());
pref.setSummary(editTextPref.getText());
}
}
@@ -78,6 +83,7 @@ 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_quickwizard);
addPreferencesFromResource(R.xml.pref_language);
if (Config.CAREPORTALENABLED)
@@ -85,20 +91,29 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre
addPreferencesFromResource(R.xml.pref_treatments);
if (Config.APS)
addPreferencesFromResource(R.xml.pref_closedmode);
- if (Config.OPENAPSMAENABLED)
+ if (Config.OPENAPSENABLED)
addPreferencesFromResource(R.xml.pref_openapsma);
- addPreferencesFromResource(R.xml.pref_nightscout);
+ if (MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class) != null && MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class).isEnabled(PluginBase.APS))
+ addPreferencesFromResource(R.xml.pref_openapsama);
+ addPreferencesFromResource(R.xml.pref_profile);
if (Config.DANAR) {
DanaRPlugin danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class);
DanaRKoreanPlugin danaRKoreanPlugin = (DanaRKoreanPlugin) MainApp.getSpecificPlugin(DanaRKoreanPlugin.class);
if (danaRPlugin.isEnabled(PluginBase.PUMP) || danaRKoreanPlugin.isEnabled(PluginBase.PUMP)) {
addPreferencesFromResource(R.xml.pref_danar);
+ }
+ if (danaRPlugin.isEnabled(PluginBase.PROFILE) || danaRKoreanPlugin.isEnabled(PluginBase.PROFILE)) {
addPreferencesFromResource(R.xml.pref_danarprofile);
}
}
+ VirtualPumpPlugin virtualPumpPlugin = (VirtualPumpPlugin) MainApp.getSpecificPlugin(VirtualPumpPlugin.class);
+ if (virtualPumpPlugin != null && virtualPumpPlugin.isEnabled(PluginBase.PUMP)) {
+ addPreferencesFromResource(R.xml.pref_virtualpump);
+ }
if (Config.SMSCOMMUNICATORENABLED)
addPreferencesFromResource(R.xml.pref_smscommunicator);
addPreferencesFromResource(R.xml.pref_others);
+ addPreferencesFromResource(R.xml.pref_advanced);
initSummary(getPreferenceScreen());
}
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 7ba381f130..100a452ede 100644
--- a/app/src/main/java/info/nightscout/androidaps/Services/DataService.java
+++ b/app/src/main/java/info/nightscout/androidaps/Services/DataService.java
@@ -6,7 +6,6 @@ import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.provider.Telephony;
-import android.support.annotation.Nullable;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.stmt.PreparedQuery;
@@ -29,26 +28,29 @@ import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.db.BgReading;
import info.nightscout.androidaps.db.DanaRHistoryRecord;
+import info.nightscout.androidaps.db.TempTarget;
import info.nightscout.androidaps.db.Treatment;
import info.nightscout.androidaps.events.EventNewBG;
import info.nightscout.androidaps.events.EventNewBasalProfile;
-import info.nightscout.androidaps.events.EventTreatmentChange;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.DanaR.History.DanaRNSHistorySync;
import info.nightscout.androidaps.plugins.NSProfile.NSProfilePlugin;
import info.nightscout.androidaps.plugins.Objectives.ObjectivesPlugin;
+import info.nightscout.androidaps.plugins.Overview.Notification;
import info.nightscout.androidaps.plugins.Overview.OverviewPlugin;
+import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification;
+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.SourceMM640g.SourceMM640gPlugin;
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.utils.ToastUtils;
public class DataService extends IntentService {
@@ -251,10 +253,15 @@ public class DataService extends IntentService {
ConfigBuilderPlugin.nsClientVersionCode = bundles.getInt("nsclientversioncode"); // for ver 1.17 contains 117
ConfigBuilderPlugin.nsClientVersionName = bundles.getString("nsclientversionname");
log.debug("Got versions: NSClient: " + ConfigBuilderPlugin.nsClientVersionName + " Nightscout: " + ConfigBuilderPlugin.nightscoutVersionName);
- if (ConfigBuilderPlugin.nsClientVersionCode < 118)
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.unsupportedclientver));
+ if (ConfigBuilderPlugin.nsClientVersionCode < 121) {
+ Notification notification = new Notification(Notification.OLD_NSCLIENT, MainApp.sResources.getString(R.string.unsupportedclientver), Notification.URGENT);
+ MainApp.bus().post(new EventNewNotification(notification));
+ } else {
+ MainApp.bus().post(new EventDismissNotification(Notification.OLD_NSCLIENT));
+ }
} else {
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.unsupportedclientver));
+ Notification notification = new Notification(Notification.OLD_NSCLIENT, MainApp.sResources.getString(R.string.unsupportedclientver), Notification.URGENT);
+ MainApp.bus().post(new EventNewNotification(notification));
}
if (bundles.containsKey("status")) {
try {
@@ -378,7 +385,8 @@ public class DataService extends IntentService {
String trstring = bundles.getString("treatment");
JSONObject trJson = new JSONObject(trstring);
String _id = trJson.getString("_id");
- removeTreatmentFromDb(_id);
+ MainApp.getDbHelper().delete(_id);
+ handleRemoveTempTargetRecord(trJson);
}
if (bundles.containsKey("treatments")) {
@@ -387,7 +395,8 @@ public class DataService extends IntentService {
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject trJson = jsonArray.getJSONObject(i);
String _id = trJson.getString("_id");
- removeTreatmentFromDb(_id);
+ MainApp.getDbHelper().delete(_id);
+ handleRemoveTempTargetRecord(trJson);
}
}
} catch (Exception e) {
@@ -443,6 +452,7 @@ public class DataService extends IntentService {
private void handleAddedTreatment(String trstring) throws JSONException, SQLException {
JSONObject trJson = new JSONObject(trstring);
handleDanaRHistoryRecords(trJson); // update record _id in history
+ handleAddChangeTempTargetRecord(trJson);
if (!trJson.has("insulin") && !trJson.has("carbs")) {
if (Config.logIncommingData)
log.debug("ADD: Uninterested treatment: " + trstring);
@@ -455,9 +465,9 @@ public class DataService extends IntentService {
if (trJson.has("timeIndex")) {
if (Config.logIncommingData)
log.debug("ADD: timeIndex found: " + trstring);
- stored = findByTimeIndex(trJson.getLong("timeIndex"));
+ stored = MainApp.getDbHelper().findTreatmentByTimeIndex(trJson.getLong("timeIndex"));
} else {
- stored = findById(_id);
+ stored = MainApp.getDbHelper().findTreatmentById(_id);
}
if (stored != null) {
@@ -465,10 +475,9 @@ public class DataService extends IntentService {
log.debug("ADD: Existing treatment: " + trstring);
if (trJson.has("timeIndex")) {
stored._id = _id;
- int updated = MainApp.getDbHelper().getDaoTreatments().update(stored);
+ int updated = MainApp.getDbHelper().update(stored);
if (Config.logIncommingData)
log.debug("Records updated: " + updated);
- scheduleTreatmentChange();
}
} else {
if (Config.logIncommingData)
@@ -480,25 +489,29 @@ public class DataService extends IntentService {
treatment.created_at = new Date(trJson.getLong("mills"));
if (trJson.has("eventType")) {
treatment.mealBolus = true;
- if (trJson.get("eventType").equals("Correction Bolus")) treatment.mealBolus = false;
- if (trJson.get("eventType").equals("Bolus Wizard") && treatment.carbs <= 0)
+ if (trJson.get("eventType").equals("Correction Bolus"))
+ treatment.mealBolus = false;
+ double carbs = treatment.carbs;
+ if (trJson.has("boluscalc")) {
+ JSONObject boluscalc = trJson.getJSONObject("boluscalc");
+ if (boluscalc.has("carbs")) {
+ carbs = Math.max(boluscalc.getDouble("carbs"), carbs);
+ }
+ }
+ if (carbs <= 0)
treatment.mealBolus = false;
}
treatment.setTimeIndex(treatment.getTimeIndex());
- try {
- MainApp.getDbHelper().getDaoTreatments().createOrUpdate(treatment);
- if (Config.logIncommingData)
- log.debug("ADD: Stored treatment: " + treatment.log());
- } catch (SQLException e) {
- e.printStackTrace();
- }
- scheduleTreatmentChange();
+ MainApp.getDbHelper().createOrUpdate(treatment);
+ if (Config.logIncommingData)
+ log.debug("ADD: Stored treatment: " + treatment.log());
}
}
private void handleChangedTreatment(String trstring) throws JSONException, SQLException {
JSONObject trJson = new JSONObject(trstring);
handleDanaRHistoryRecords(trJson); // update record _id in history
+ handleAddChangeTempTargetRecord(trJson);
if (!trJson.has("insulin") && !trJson.has("carbs")) {
if (Config.logIncommingData)
log.debug("CHANGE: Uninterested treatment: " + trstring);
@@ -511,15 +524,15 @@ public class DataService extends IntentService {
if (trJson.has("timeIndex")) {
if (Config.logIncommingData)
log.debug("ADD: timeIndex found: " + trstring);
- stored = findByTimeIndex(trJson.getLong("timeIndex"));
+ stored = MainApp.getDbHelper().findTreatmentByTimeIndex(trJson.getLong("timeIndex"));
} else {
- stored = findById(_id);
+ stored = MainApp.getDbHelper().findTreatmentById(_id);
}
if (stored != null) {
if (Config.logIncommingData)
log.debug("CHANGE: Removing old: " + trstring);
- removeTreatmentFromDb(_id);
+ MainApp.getDbHelper().delete(_id);
}
if (Config.logIncommingData)
@@ -532,21 +545,24 @@ public class DataService extends IntentService {
treatment.created_at = new Date(trJson.getLong("mills"));
if (trJson.has("eventType")) {
treatment.mealBolus = true;
- if (trJson.get("eventType").equals("Correction Bolus")) treatment.mealBolus = false;
- if (trJson.get("eventType").equals("Bolus Wizard") && treatment.carbs <= 0)
+ if (trJson.get("eventType").equals("Correction Bolus"))
+ treatment.mealBolus = false;
+ double carbs = treatment.carbs;
+ if (trJson.has("boluscalc")) {
+ JSONObject boluscalc = trJson.getJSONObject("boluscalc");
+ if (boluscalc.has("carbs")) {
+ carbs = Math.max(boluscalc.getDouble("carbs"), carbs);
+ }
+ }
+ if (carbs <= 0)
treatment.mealBolus = false;
}
treatment.setTimeIndex(treatment.getTimeIndex());
- try {
- Dao.CreateOrUpdateStatus status = MainApp.getDbHelper().getDaoTreatments().createOrUpdate(treatment);
- if (Config.logIncommingData)
- log.debug("Records updated: " + status.getNumLinesChanged());
- if (Config.logIncommingData)
- log.debug("CHANGE: Stored treatment: " + treatment.log());
- } catch (SQLException e) {
- e.printStackTrace();
- }
- scheduleTreatmentChange();
+ Dao.CreateOrUpdateStatus status = MainApp.getDbHelper().createOrUpdate(treatment);
+ if (Config.logIncommingData)
+ log.debug("Records updated: " + status.getNumLinesChanged());
+ if (Config.logIncommingData)
+ log.debug("CHANGE: Stored treatment: " + treatment.log());
}
public void handleDanaRHistoryRecords(JSONObject trJson) throws JSONException, SQLException {
@@ -573,63 +589,83 @@ public class DataService extends IntentService {
}
}
- @Nullable
- public static Treatment findById(String _id) {
- try {
- Dao daoTreatments = MainApp.getDbHelper().getDaoTreatments();
- QueryBuilder queryBuilder = daoTreatments.queryBuilder();
- Where where = queryBuilder.where();
- where.eq("_id", _id);
- queryBuilder.limit(10);
- PreparedQuery preparedQuery = queryBuilder.prepare();
- List trList = daoTreatments.query(preparedQuery);
- if (trList.size() != 1) {
- //log.debug("Treatment findById query size: " + trList.size());
- return null;
- } else {
- //log.debug("Treatment findById found: " + trList.get(0).log());
- return trList.get(0);
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return null;
- }
+ /*
+ {
+ "_id": "58795998aa86647ba4d68ce7",
+ "enteredBy": "",
+ "eventType": "Temporary Target",
+ "reason": "Eating Soon",
+ "targetTop": 80,
+ "targetBottom": 80,
+ "duration": 120,
+ "created_at": "2017-01-13T22:50:00.782Z",
+ "carbs": null,
+ "insulin": null
+}
+ */
- @Nullable
- public static Treatment findByTimeIndex(Long timeIndex) {
- try {
- QueryBuilder qb = null;
- Dao daoTreatments = MainApp.getDbHelper().getDaoTreatments();
- QueryBuilder queryBuilder = daoTreatments.queryBuilder();
- Where where = queryBuilder.where();
- where.eq("timeIndex", timeIndex);
- queryBuilder.limit(10);
- PreparedQuery preparedQuery = queryBuilder.prepare();
- List trList = daoTreatments.query(preparedQuery);
- if (trList.size() != 1) {
- log.debug("Treatment findByTimeIndex query size: " + trList.size());
- return null;
- } else {
- log.debug("Treatment findByTimeIndex found: " + trList.get(0).log());
- return trList.get(0);
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return null;
- }
-
- private void removeTreatmentFromDb(String _id) throws SQLException {
- Treatment stored = findById(_id);
- if (stored != null) {
- log.debug("REMOVE: Existing treatment (removing): " + _id);
- int removed = MainApp.getDbHelper().getDaoTreatments().delete(stored);
+ public void handleAddChangeTempTargetRecord(JSONObject trJson) throws JSONException, SQLException {
+ if (trJson.has("eventType") && trJson.getString("eventType").equals("Temporary Target")) {
if (Config.logIncommingData)
- log.debug("Records removed: " + removed);
- scheduleTreatmentChange();
- } else {
- log.debug("REMOVE: Not stored treatment (ignoring): " + _id);
+ log.debug("Processing TempTarget record: " + trJson.toString());
+ Dao daoTempTargets = MainApp.getDbHelper().getDaoTempTargets();
+ QueryBuilder queryBuilder = daoTempTargets.queryBuilder();
+ Where where = queryBuilder.where();
+ where.eq("_id", trJson.getString("_id")).or().eq("timeIndex", trJson.getLong("mills"));
+ PreparedQuery preparedQuery = queryBuilder.prepare();
+ List list = daoTempTargets.query(preparedQuery);
+ NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
+ if (profile == null) return; // no profile data, better ignore than do something wrong
+ String units = profile.getUnits();
+ if (list.size() == 0) {
+ // Record does not exists. add
+ TempTarget newRecord = new TempTarget();
+ newRecord.timeStart = new Date(trJson.getLong("mills"));
+ newRecord.duration = trJson.getInt("duration");
+ newRecord.low = NSProfile.toMgdl(trJson.getDouble("targetBottom"), units);
+ newRecord.high = NSProfile.toMgdl(trJson.getDouble("targetTop"), units);
+ newRecord.reason = trJson.getString("reason");
+ newRecord._id = trJson.getString("_id");
+ newRecord.setTimeIndex(newRecord.getTimeIndex());
+ daoTempTargets.createIfNotExists(newRecord);
+ if (Config.logIncommingData)
+ log.debug("Adding TempTarget record to database: " + newRecord.log());
+ MainApp.bus().post(new EventTempTargetRangeChange());
+ } else if (list.size() == 1) {
+ if (Config.logIncommingData)
+ log.debug("Updating TempTarget record in database: " + trJson.getString("_id"));
+ TempTarget record = list.get(0);
+ record.timeStart = new Date(trJson.getLong("mills"));
+ record.duration = trJson.getInt("duration");
+ record.low = NSProfile.toMgdl(trJson.getDouble("targetBottom"), units);
+ record.high = NSProfile.toMgdl(trJson.getDouble("targetTop"), units);
+ record.reason = trJson.getString("reason");
+ record._id = trJson.getString("_id");
+ daoTempTargets.update(record);
+ MainApp.bus().post(new EventTempTargetRangeChange());
+ }
+ }
+ }
+
+ public void handleRemoveTempTargetRecord(JSONObject trJson) throws JSONException, SQLException {
+ if (trJson.has("_id")) {
+ Dao daoTempTargets = MainApp.getDbHelper().getDaoTempTargets();
+ QueryBuilder queryBuilder = daoTempTargets.queryBuilder();
+ Where where = queryBuilder.where();
+ where.eq("_id", trJson.getString("_id"));
+ PreparedQuery preparedQuery = queryBuilder.prepare();
+ List list = daoTempTargets.query(preparedQuery);
+
+ if (list.size() == 1) {
+ TempTarget record = list.get(0);
+ if (Config.logIncommingData)
+ log.debug("Removing TempTarget record from database: " + record.log());
+ daoTempTargets.delete(record);
+ MainApp.bus().post(new EventTempTargetRangeChange());
+ } else {
+ if (Config.logIncommingData)
+ log.debug("TempTarget not found database: " + trJson.toString());
+ }
}
}
@@ -639,9 +675,4 @@ public class DataService extends IntentService {
MainApp.bus().post(new EventNewSMS(bundle));
}
- public void scheduleTreatmentChange() {
- MainApp.bus().post(new EventTreatmentChange());
- }
-
-
}
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 e46071e7ff..921b04b936 100644
--- a/app/src/main/java/info/nightscout/androidaps/Services/Intents.java
+++ b/app/src/main/java/info/nightscout/androidaps/Services/Intents.java
@@ -31,4 +31,6 @@ public interface Intents {
String ACTION_NEW_BG_ESTIMATE_NO_DATA = "com.eveningoutpost.dexdrip.BgEstimateNoData";
String NS_EMULATOR = "com.eveningoutpost.dexdrip.NS_EMULATOR";
+
+ String ACTION_REMOTE_CALIBRATION = "com.eveningoutpost.dexdrip.NewCalibration";
}
diff --git a/app/src/main/java/info/nightscout/androidaps/data/GlucoseStatus.java b/app/src/main/java/info/nightscout/androidaps/data/GlucoseStatus.java
new file mode 100644
index 0000000000..9fc8bd0ff4
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/data/GlucoseStatus.java
@@ -0,0 +1,189 @@
+package info.nightscout.androidaps.data;
+
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+import android.support.annotation.Nullable;
+import android.text.Html;
+import android.text.Spanned;
+
+import com.j256.ormlite.dao.Dao;
+import com.j256.ormlite.stmt.PreparedQuery;
+import com.j256.ormlite.stmt.QueryBuilder;
+
+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.MainApp;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.db.BgReading;
+import info.nightscout.utils.DecimalFormatter;
+import info.nightscout.utils.Round;
+
+/**
+ * Created by mike on 04.01.2017.
+ */
+
+public class GlucoseStatus {
+ private static Logger log = LoggerFactory.getLogger(GlucoseStatus.class);
+ public double glucose = 0d;
+ public double delta = 0d;
+ public double avgdelta = 0d;
+ public double short_avgdelta = 0d;
+ public double long_avgdelta = 0d;
+
+
+ @Override
+ public String toString() {
+ return MainApp.sResources.getString(R.string.glucose) + " " + DecimalFormatter.to0Decimal(glucose) + " mg/dl\n" +
+ MainApp.sResources.getString(R.string.delta) + " " + DecimalFormatter.to0Decimal(delta) + " mg/dl\n" +
+ MainApp.sResources.getString(R.string.short_avgdelta) + " " + DecimalFormatter.to2Decimal(short_avgdelta) + " mg/dl\n" +
+ MainApp.sResources.getString(R.string.long_avgdelta) + " " + DecimalFormatter.to2Decimal(long_avgdelta) + " mg/dl";
+ }
+
+ public Spanned toSpanned() {
+ return Html.fromHtml("" + MainApp.sResources.getString(R.string.glucose) + ": " + DecimalFormatter.to0Decimal(glucose) + " mg/dl
" +
+ "" + MainApp.sResources.getString(R.string.delta) + ": " + DecimalFormatter.to0Decimal(delta) + " mg/dl
" +
+ "" + MainApp.sResources.getString(R.string.short_avgdelta) + ": " + DecimalFormatter.to2Decimal(short_avgdelta) + " mg/dl
" +
+ "" + MainApp.sResources.getString(R.string.long_avgdelta) + ": " + DecimalFormatter.to2Decimal(long_avgdelta) + " mg/dl");
+ }
+
+ public GlucoseStatus() {
+ }
+
+ public GlucoseStatus round() {
+ this.glucose = Round.roundTo(this.glucose, 0.1);
+ this.delta = Round.roundTo(this.delta, 0.01);
+ this.avgdelta = Round.roundTo(this.avgdelta, 0.01);
+ this.short_avgdelta = Round.roundTo(this.short_avgdelta, 0.01);
+ this.long_avgdelta = Round.roundTo(this.long_avgdelta, 0.01);
+ return this;
+ }
+
+ @Nullable
+ public static GlucoseStatus getGlucoseStatusData() {
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(MainApp.instance());
+
+ // load 45min
+ long fromtime = (long) (new Date().getTime() - 60 * 1000L * 45);
+ List data = MainApp.getDbHelper().getBgreadingsDataFromTime(fromtime, false);
+
+ int sizeRecords = data.size();
+ if (sizeRecords < 4 || data.get(0).timeIndex < new Date().getTime() - 7 * 60 * 1000L) {
+ return null;
+ }
+
+ BgReading now = data.get(0);
+ long now_date = now.timeIndex;
+ double change;
+
+ ArrayList last_deltas = new ArrayList();
+ ArrayList short_deltas = new ArrayList();
+ ArrayList long_deltas = new ArrayList();
+
+ for (int i = 1; i < data.size(); i++) {
+ if (data.get(i).value > 38) {
+ BgReading then = data.get(i);
+ long then_date = then.timeIndex;
+ double avgdelta = 0;
+ long minutesago;
+
+ minutesago = Math.round((now_date - then_date) / (1000d * 60));
+ // multiply by 5 to get the same units as delta, i.e. mg/dL/5m
+ change = now.value - then.value;
+ avgdelta = change / minutesago * 5;
+
+ // use the average of all data points in the last 2.5m for all further "now" calculations
+ if (0 < minutesago && minutesago < 2.5) {
+ now.value = (now.value + then.value) / 2;
+ now_date = (now_date + then_date) / 2;
+ // short_deltas are calculated from everything ~5-15 minutes ago
+ } else if (2.5 < minutesago && minutesago < 17.5) {
+ //console.error(minutesago, avgdelta);
+ short_deltas.add(avgdelta);
+ // last_deltas are calculated from everything ~5 minutes ago
+ if (2.5 < minutesago && minutesago < 7.5) {
+ last_deltas.add(avgdelta);
+ }
+ // long_deltas are calculated from everything ~20-40 minutes ago
+ } else if (17.5 < minutesago && minutesago < 42.5) {
+ long_deltas.add(avgdelta);
+ }
+ }
+ }
+
+ GlucoseStatus status = new GlucoseStatus();
+ status.glucose = now.value;
+
+ status.short_avgdelta = average(short_deltas);
+
+ if(prefs.getBoolean("always_use_shortavg",false) || last_deltas.isEmpty()){
+ status.delta = status.short_avgdelta;
+ } else {
+ status.delta = average(last_deltas);
+ }
+
+ status.long_avgdelta = average(long_deltas);
+ status.avgdelta = status.short_avgdelta; // for OpenAPS MA
+
+ return status.round();
+ }
+
+ /*
+ * Return last BgReading from database or null if db is empty
+ */
+ @Nullable
+ public static BgReading lastBg() {
+ List bgList = null;
+
+ try {
+ Dao daoBgReadings = MainApp.getDbHelper().getDaoBgReadings();
+ QueryBuilder queryBuilder = daoBgReadings.queryBuilder();
+ queryBuilder.orderBy("timeIndex", false);
+ queryBuilder.limit(1L);
+ queryBuilder.where().gt("value", 38);
+ PreparedQuery preparedQuery = queryBuilder.prepare();
+ bgList = daoBgReadings.query(preparedQuery);
+
+ } catch (SQLException e) {
+ log.debug(e.getMessage(), e);
+ }
+ if (bgList != null && bgList.size() > 0)
+ return bgList.get(0);
+ else
+ return null;
+ }
+
+ /*
+ * Return bg reading if not old ( <9 min )
+ * or null if older
+ */
+ @Nullable
+ public static BgReading actualBg() {
+ BgReading lastBg = lastBg();
+
+ if (lastBg == null)
+ return null;
+
+ if (lastBg.timeIndex > new Date().getTime() - 9 * 60 * 1000)
+ return lastBg;
+
+ return null;
+ }
+
+ public static double average(ArrayList array) {
+ double sum = 0d;
+
+ if (array.size() == 0)
+ return 0d;
+
+ for (Double value : array) {
+ sum += value;
+ }
+ return sum / array.size();
+ }
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/data/IobTotal.java b/app/src/main/java/info/nightscout/androidaps/data/IobTotal.java
new file mode 100644
index 0000000000..f2a6ad0df2
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/data/IobTotal.java
@@ -0,0 +1,137 @@
+package info.nightscout.androidaps.data;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+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.utils.DateUtil;
+import info.nightscout.utils.Round;
+
+public class IobTotal {
+ public Double iob;
+ public Double activity;
+ public Double bolussnooze;
+ public Double basaliob;
+ public Double netbasalinsulin;
+ public Double hightempinsulin;
+
+ public Double netInsulin = 0d; // for calculations from temp basals only
+ public Double netRatio = 0d; // for calculations from temp basals only
+
+ long time;
+
+ public IobTotal(long time) {
+ this.iob = 0d;
+ this.activity = 0d;
+ this.bolussnooze = 0d;
+ this.basaliob = 0d;
+ this.netbasalinsulin = 0d;
+ this.hightempinsulin = 0d;
+ this.time = time;
+ }
+
+ public IobTotal plus(IobTotal other) {
+ iob += other.iob;
+ activity += other.activity;
+ bolussnooze += other.bolussnooze;
+ basaliob += other.basaliob;
+ netbasalinsulin += other.netbasalinsulin;
+ hightempinsulin += other.hightempinsulin;
+ netInsulin += other.netInsulin;
+ netRatio += other.netRatio;
+ return this;
+ }
+
+ public static IobTotal combine(IobTotal bolusIOB, IobTotal basalIob) {
+ IobTotal result = new IobTotal(bolusIOB.time);
+ result.iob = bolusIOB.iob + basalIob.basaliob;
+ result.activity = bolusIOB.activity + basalIob.activity;
+ result.bolussnooze = bolusIOB.bolussnooze;
+ result.basaliob = basalIob.basaliob;
+ result.netbasalinsulin = basalIob.netbasalinsulin;
+ result.hightempinsulin = basalIob.hightempinsulin;
+ return result;
+ }
+
+ public IobTotal round() {
+ this.iob = Round.roundTo(this.iob, 0.001);
+ this.activity = Round.roundTo(this.activity, 0.0001);
+ this.bolussnooze = Round.roundTo(this.bolussnooze, 0.0001);
+ this.basaliob = Round.roundTo(this.basaliob, 0.001);
+ this.netbasalinsulin = Round.roundTo(this.netbasalinsulin, 0.001);
+ this.hightempinsulin = Round.roundTo(this.hightempinsulin, 0.001);
+ return this;
+ }
+
+ public JSONObject json() {
+ JSONObject json = new JSONObject();
+ try {
+ json.put("iob", iob);
+ json.put("basaliob", basaliob);
+ json.put("activity", activity);
+ json.put("time", DateUtil.toISOString(new Date()));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ return json;
+ }
+
+ public JSONObject determineBasalJson() {
+ JSONObject json = new JSONObject();
+ try {
+ json.put("iob", iob);
+ json.put("basaliob", basaliob);
+ json.put("bolussnooze", bolussnooze);
+ json.put("activity", activity);
+ json.put("time", DateUtil.toISOString(new Date(time)));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ return json;
+ }
+
+ public static IobTotal calulateFromTreatmentsAndTemps() {
+ ConfigBuilderPlugin.getActiveTreatments().updateTotalIOB();
+ IobTotal bolusIob = ConfigBuilderPlugin.getActiveTreatments().getLastCalculation().round();
+ ConfigBuilderPlugin.getActiveTempBasals().updateTotalIOB();
+ IobTotal basalIob = ConfigBuilderPlugin.getActiveTempBasals().getLastCalculation().round();
+ IobTotal iobTotal = IobTotal.combine(bolusIob, basalIob).round();
+ return iobTotal;
+ }
+
+ public static IobTotal calulateFromTreatmentsAndTemps(long time) {
+ IobTotal bolusIob = ConfigBuilderPlugin.getActiveTreatments().getCalculationToTime(time).round();
+ IobTotal basalIob = ConfigBuilderPlugin.getActiveTempBasals().getCalculationToTime(time).round();
+ IobTotal iobTotal = IobTotal.combine(bolusIob, basalIob).round();
+ return iobTotal;
+ }
+
+ public static IobTotal[] calculateIobArrayInDia() {
+ NSProfile profile = ConfigBuilderPlugin.getActiveProfile().getProfile();
+ // predict IOB out to DIA plus 30m
+ long time = new Date().getTime();
+ int len = (int) ((profile.getDia() *60 + 30) / 5);
+ IobTotal[] array = new IobTotal[len];
+ int pos = 0;
+ for (int i = 0; i < len; i++){
+ long t = time + i * 5 * 60000;
+ IobTotal iob = calulateFromTreatmentsAndTemps(t);
+ array[pos] = iob;
+ pos++;
+ }
+ return array;
+ }
+
+ public static JSONArray convertToJSONArray(IobTotal[] iobArray) {
+ JSONArray array = new JSONArray();
+ for (int i = 0; i < iobArray.length; i ++) {
+ array.put(iobArray[i].determineBasalJson());
+ }
+ return array;
+ }
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/data/MealData.java b/app/src/main/java/info/nightscout/androidaps/data/MealData.java
new file mode 100644
index 0000000000..b8e73c3e00
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/data/MealData.java
@@ -0,0 +1,48 @@
+package info.nightscout.androidaps.data;
+
+import java.util.Date;
+import java.util.List;
+
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.db.BgReading;
+import info.nightscout.androidaps.db.Treatment;
+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;
+
+/**
+ * Created by mike on 04.01.2017.
+ */
+public class MealData {
+ public double boluses = 0d;
+ public double carbs = 0d;
+ public double mealCOB = 0.0d;
+
+
+ public void addTreatment(Treatment treatment) {
+ 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);
+
+ long now = new Date().getTime();
+ long dia_ago = now - (new Double(1.5d * profile.getDia() * 60 * 60 * 1000l)).longValue();
+ long t = treatment.created_at.getTime();
+ if (t > dia_ago && t <= now) {
+ if (treatment.carbs >= 1) {
+ carbs += treatment.carbs;
+ if (MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class).isEnabled(PluginBase.APS)) {
+ AutosensResult result = Autosens.detectSensitivityandCarbAbsorption(bgReadings, t);
+ double myCarbsAbsorbed = result.carbsAbsorbed;
+ double myMealCOB = Math.max(0, carbs - myCarbsAbsorbed);
+ mealCOB = Math.max(mealCOB, myMealCOB);
+ }
+ }
+ if (treatment.insulin > 0 && treatment.mealBolus) {
+ boluses += treatment.insulin;
+ }
+ }
+ }
+}
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 38a340acb0..7ce7c14678 100644
--- a/app/src/main/java/info/nightscout/androidaps/data/PumpEnactResult.java
+++ b/app/src/main/java/info/nightscout/androidaps/data/PumpEnactResult.java
@@ -14,7 +14,7 @@ import info.nightscout.client.data.NSProfile;
import info.nightscout.utils.DecimalFormatter;
import info.nightscout.utils.Round;
-public class PumpEnactResult extends Object implements Parcelable {
+public class PumpEnactResult extends Object {
public boolean success = false; // request was processed successfully (but possible no change was needed)
public boolean enacted = false; // request was processed successfully and change has been made
public String comment = "";
@@ -85,43 +85,6 @@ public class PumpEnactResult extends Object implements Parcelable {
return Html.fromHtml(ret);
}
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- dest.writeInt(success ? 1 : 0);
- dest.writeInt(enacted ? 1 : 0);
- dest.writeInt(isPercent ? 1 : 0);
- dest.writeString(comment);
- dest.writeInt(duration);
- dest.writeDouble(absolute);
- dest.writeInt(percent);
- }
-
- public final Parcelable.Creator CREATOR = new Parcelable.Creator() {
- public PumpEnactResult createFromParcel(Parcel in) {
- return new PumpEnactResult(in);
- }
-
- public PumpEnactResult[] newArray(int size) {
- return new PumpEnactResult[size];
- }
- };
-
- protected PumpEnactResult(Parcel in) {
- success = in.readInt() == 1 ? true : false;
- enacted = in.readInt() == 1 ? true : false;
- isPercent = in.readInt() == 1 ? true : false;
- duration = in.readInt();
- comment = in.readString();
- absolute = in.readDouble();
- percent = in.readInt();
-
- }
-
public PumpEnactResult() {
}
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 fccb964394..47b8aa222f 100644
--- a/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java
+++ b/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java
@@ -3,11 +3,7 @@ package info.nightscout.androidaps.db;
import android.content.Context;
import android.database.DatabaseUtils;
import android.database.sqlite.SQLiteDatabase;
-import android.os.Parcel;
-import android.os.Parcelable;
import android.support.annotation.Nullable;
-import android.text.Html;
-import android.text.Spanned;
import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
import com.j256.ormlite.dao.Dao;
@@ -24,12 +20,15 @@ import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
-import info.nightscout.androidaps.R;
-import info.nightscout.utils.DecimalFormatter;
-import info.nightscout.utils.Round;
+import info.nightscout.androidaps.events.EventTreatmentChange;
public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
private static Logger log = LoggerFactory.getLogger(DatabaseHelper.class);
@@ -37,13 +36,20 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
public static final String DATABASE_NAME = "AndroidAPSDb";
public static final String DATABASE_BGREADINGS = "BgReadings";
public static final String DATABASE_TEMPBASALS = "TempBasals";
+ public static final String DATABASE_TEMPTARGETS = "TempTargets";
public static final String DATABASE_TREATMENTS = "Treatments";
public static final String DATABASE_DANARHISTORY = "DanaRHistory";
private static final int DATABASE_VERSION = 5;
+ private long latestTreatmentChange = 0;
+
+ private static final ScheduledExecutorService worker = Executors.newSingleThreadScheduledExecutor();
+ private static ScheduledFuture> scheduledPost = null;
+
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
+ onCreate(getWritableDatabase(), getConnectionSource());
}
@@ -52,11 +58,12 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
try {
log.info("onCreate");
TableUtils.createTableIfNotExists(connectionSource, TempBasal.class);
+ TableUtils.createTableIfNotExists(connectionSource, TempTarget.class);
TableUtils.createTableIfNotExists(connectionSource, Treatment.class);
TableUtils.createTableIfNotExists(connectionSource, BgReading.class);
TableUtils.createTableIfNotExists(connectionSource, DanaRHistoryRecord.class);
} catch (SQLException e) {
- log.error(DatabaseHelper.class.getName(), "Can't create database", e);
+ log.error("Can't create database", e);
throw new RuntimeException(e);
}
}
@@ -66,12 +73,13 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
try {
log.info(DatabaseHelper.class.getName(), "onUpgrade");
TableUtils.dropTable(connectionSource, TempBasal.class, true);
+ TableUtils.dropTable(connectionSource, TempTarget.class, true);
TableUtils.dropTable(connectionSource, Treatment.class, true);
TableUtils.dropTable(connectionSource, BgReading.class, true);
TableUtils.dropTable(connectionSource, DanaRHistoryRecord.class, true);
onCreate(database, connectionSource);
} catch (SQLException e) {
- log.error(DatabaseHelper.class.getName(), "Can't drop databases", e);
+ log.error("Can't drop databases", e);
throw new RuntimeException(e);
}
}
@@ -87,35 +95,39 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
public void cleanUpDatabases() {
// TODO: call it somewhere
log.debug("Before BgReadings size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_BGREADINGS));
- getWritableDatabase().delete("BgReadings", "timeIndex" + " < '" + (new Date().getTime() - Constants.hoursToKeepInDatabase * 60 * 60 * 1000L) + "'", null);
+ getWritableDatabase().delete(DATABASE_BGREADINGS, "timeIndex" + " < '" + (new Date().getTime() - Constants.hoursToKeepInDatabase * 60 * 60 * 1000L) + "'", null);
log.debug("After BgReadings size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_BGREADINGS));
log.debug("Before TempBasals size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_TEMPBASALS));
- getWritableDatabase().delete("TempBasals", "timeIndex" + " < '" + (new Date().getTime() - Constants.hoursToKeepInDatabase * 60 * 60 * 1000L) + "'", null);
+ getWritableDatabase().delete(DATABASE_TEMPBASALS, "timeIndex" + " < '" + (new Date().getTime() - Constants.hoursToKeepInDatabase * 60 * 60 * 1000L) + "'", null);
log.debug("After TempBasals size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_TEMPBASALS));
+ log.debug("Before TempTargets size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_TEMPTARGETS));
+ getWritableDatabase().delete(DATABASE_TEMPTARGETS, "timeIndex" + " < '" + (new Date().getTime() - Constants.hoursToKeepInDatabase * 60 * 60 * 1000L) + "'", null);
+ log.debug("After TempTargets size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_TEMPTARGETS));
+
log.debug("Before Treatments size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_TREATMENTS));
- getWritableDatabase().delete("Treatments", "timeIndex" + " < '" + (new Date().getTime() - Constants.hoursToKeepInDatabase * 60 * 60 * 1000L) + "'", null);
+ getWritableDatabase().delete(DATABASE_TREATMENTS, "timeIndex" + " < '" + (new Date().getTime() - Constants.hoursToKeepInDatabase * 60 * 60 * 1000L) + "'", null);
log.debug("After Treatments size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_TREATMENTS));
- log.debug("Before History size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), "DanaRHistory"));
- getWritableDatabase().delete("History", "recordDate" + " < '" + (new Date().getTime() - Constants.daysToKeepHistoryInDatabase * 24 * 60 * 60 * 1000L) + "'", null);
- log.debug("After History size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), "DanaRHistory"));
+ log.debug("Before History size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_DANARHISTORY));
+ getWritableDatabase().delete(DATABASE_DANARHISTORY, "recordDate" + " < '" + (new Date().getTime() - Constants.daysToKeepHistoryInDatabase * 24 * 60 * 60 * 1000L) + "'", null);
+ log.debug("After History size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_DANARHISTORY));
}
public void resetDatabases() {
try {
TableUtils.dropTable(connectionSource, TempBasal.class, true);
+ TableUtils.dropTable(connectionSource, TempTarget.class, true);
TableUtils.dropTable(connectionSource, Treatment.class, true);
TableUtils.dropTable(connectionSource, BgReading.class, true);
TableUtils.dropTable(connectionSource, DanaRHistoryRecord.class, true);
TableUtils.createTableIfNotExists(connectionSource, TempBasal.class);
+ TableUtils.createTableIfNotExists(connectionSource, TempTarget.class);
TableUtils.createTableIfNotExists(connectionSource, Treatment.class);
TableUtils.createTableIfNotExists(connectionSource, BgReading.class);
TableUtils.createTableIfNotExists(connectionSource, DanaRHistoryRecord.class);
-// MainApp.bus().post(new EventNewBG());
-// MainApp.bus().post(new EventTreatmentChange());
-// MainApp.bus().post(new EventTempBasalChange());
+ latestTreatmentChange = 0;
} catch (SQLException e) {
e.printStackTrace();
}
@@ -123,9 +135,18 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
public void resetTreatments() {
try {
-
TableUtils.dropTable(connectionSource, Treatment.class, true);
TableUtils.createTableIfNotExists(connectionSource, Treatment.class);
+ latestTreatmentChange = 0;
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void resetTempTargets() {
+ try {
+ TableUtils.dropTable(connectionSource, TempTarget.class, true);
+ TableUtils.createTableIfNotExists(connectionSource, TempTarget.class);
} catch (SQLException e) {
e.printStackTrace();
}
@@ -135,7 +156,11 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return getDao(TempBasal.class);
}
- public Dao getDaoTreatments() throws SQLException {
+ public Dao getDaoTempTargets() throws SQLException {
+ return getDao(TempTarget.class);
+ }
+
+ private Dao getDaoTreatments() throws SQLException {
return getDao(Treatment.class);
}
@@ -147,54 +172,12 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return getDao(DanaRHistoryRecord.class);
}
- /*
- * Return last BgReading from database or null if db is empty
- */
- @Nullable
- public BgReading lastBg() {
- List bgList = null;
-
- try {
- Dao daoBgReadings = MainApp.getDbHelper().getDaoBgReadings();
- QueryBuilder queryBuilder = daoBgReadings.queryBuilder();
- queryBuilder.orderBy("timeIndex", false);
- queryBuilder.limit(1L);
- queryBuilder.where().gt("value", 38);
- PreparedQuery preparedQuery = queryBuilder.prepare();
- bgList = daoBgReadings.query(preparedQuery);
-
- } catch (SQLException e) {
- log.debug(e.getMessage(), e);
- }
- if (bgList != null && bgList.size() > 0)
- return bgList.get(0);
- else
- return null;
- }
-
- /*
- * Return bg reading if not old ( <9 min )
- * or null if older
- */
- @Nullable
- public BgReading actualBg() {
- BgReading lastBg = lastBg();
-
- if (lastBg == null)
- return null;
-
- if (lastBg.timeIndex > new Date().getTime() - 9 * 60 * 1000)
- return lastBg;
-
- return null;
- }
-
- public List getDataFromTime(long mills) {
+ public List getBgreadingsDataFromTime(long mills, boolean ascending) {
try {
Dao daoBgreadings = getDaoBgReadings();
List bgReadings;
QueryBuilder queryBuilder = daoBgreadings.queryBuilder();
- queryBuilder.orderBy("timeIndex", true);
+ queryBuilder.orderBy("timeIndex", ascending);
Where where = queryBuilder.where();
where.ge("timeIndex", mills).and().gt("value", 38);
PreparedQuery preparedQuery = queryBuilder.prepare();
@@ -206,126 +189,191 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
return new ArrayList();
}
- /*
- * Returns glucose_status for openAPS or null if no actual data available
- */
- public static class GlucoseStatus implements Parcelable {
- public double glucose = 0d;
- public double delta = 0d;
- public double avgdelta = 0d;
+ // TREATMENT HANDLING
- @Override
- public String toString() {
- return MainApp.sResources.getString(R.string.glucose) + " " + DecimalFormatter.to0Decimal(glucose) + " mg/dl\n" +
- MainApp.sResources.getString(R.string.delta) + " " + DecimalFormatter.to0Decimal(delta) + " mg/dl\n" +
- MainApp.sResources.getString(R.string.avgdelta) + " " + DecimalFormatter.to2Decimal(avgdelta) + " mg/dl";
+ public boolean isDataUnchanged(long time) {
+ if (time >= latestTreatmentChange) return true;
+ else return false;
+ }
+
+ public int update(Treatment treatment) {
+ int updated = 0;
+ try {
+ updated = getDaoTreatments().update(treatment);
+ latestTreatmentChange = treatment.getTimeIndex();
+ } catch (SQLException e) {
+ e.printStackTrace();
}
+ scheduleTreatmentChange();
+ return updated;
+ }
- public Spanned toSpanned() {
- return Html.fromHtml("" + MainApp.sResources.getString(R.string.glucose) + ": " + DecimalFormatter.to0Decimal(glucose) + " mg/dl
" +
- "" + MainApp.sResources.getString(R.string.delta) + ": " + DecimalFormatter.to0Decimal(delta) + " mg/dl
" +
- "" + MainApp.sResources.getString(R.string.avgdelta) + ": " + DecimalFormatter.to2Decimal(avgdelta) + " mg/dl");
+ public Dao.CreateOrUpdateStatus createOrUpdate(Treatment treatment) {
+ Dao.CreateOrUpdateStatus status = null;
+ try {
+ status = getDaoTreatments().createOrUpdate(treatment);
+ latestTreatmentChange = treatment.getTimeIndex();
+ } catch (SQLException e) {
+ e.printStackTrace();
}
+ scheduleTreatmentChange();
+ return status;
+ }
- @Override
- public int describeContents() {
- return 0;
+ public void create(Treatment treatment) {
+ try {
+ getDaoTreatments().create(treatment);
+ latestTreatmentChange = treatment.getTimeIndex();
+ } catch (SQLException e) {
+ e.printStackTrace();
}
+ scheduleTreatmentChange();
+ }
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- dest.writeDouble(avgdelta);
- dest.writeDouble(delta);
- dest.writeDouble(glucose);
+ public void delete(Treatment treatment) {
+ try {
+ getDaoTreatments().delete(treatment);
+ latestTreatmentChange = treatment.getTimeIndex();
+ } catch (SQLException e) {
+ e.printStackTrace();
}
+ scheduleTreatmentChange();
+ }
- public final Parcelable.Creator CREATOR = new Parcelable.Creator() {
- public GlucoseStatus createFromParcel(Parcel in) {
- return new GlucoseStatus(in);
+ public int delete(String _id) {
+ Treatment stored = findTreatmentById(_id);
+ int removed = 0;
+ if (stored != null) {
+ log.debug("REMOVE: Existing treatment (removing): " + _id);
+ try {
+ removed = getDaoTreatments().delete(stored);
+ } catch (SQLException e) {
+ e.printStackTrace();
}
-
- public GlucoseStatus[] newArray(int size) {
- return new GlucoseStatus[size];
- }
- };
-
- private GlucoseStatus(Parcel in) {
- avgdelta = in.readDouble();
- delta = in.readDouble();
- glucose = in.readDouble();
- }
-
- public GlucoseStatus() {
- }
-
- public GlucoseStatus(Double glucose, Double delta, Double avgdelta) {
- this.glucose = glucose;
- this.delta = delta;
- this.avgdelta = avgdelta;
- }
-
- public GlucoseStatus round() {
- this.glucose = Round.roundTo(this.glucose, 0.1);
- this.delta = Round.roundTo(this.delta, 0.01);
- this.avgdelta = Round.roundTo(this.avgdelta, 0.01);
- return this;
+ if (Config.logIncommingData)
+ log.debug("Records removed: " + removed);
+ latestTreatmentChange = stored.getTimeIndex();
+ scheduleTreatmentChange();
+ } else {
+ log.debug("REMOVE: Not stored treatment (ignoring): " + _id);
}
+ return removed;
}
@Nullable
- public GlucoseStatus getGlucoseStatusData() {
- GlucoseStatus result = new GlucoseStatus();
+ public Treatment findTreatmentById(String _id) {
try {
-
- Dao daoBgreadings = null;
- daoBgreadings = getDaoBgReadings();
- List bgReadings;
- QueryBuilder queryBuilder = daoBgreadings.queryBuilder();
- queryBuilder.orderBy("timeIndex", false);
- queryBuilder.where().gt("value", 38);
- queryBuilder.limit(4l);
- PreparedQuery preparedQuery = queryBuilder.prepare();
- bgReadings = daoBgreadings.query(preparedQuery);
-
- int sizeRecords = bgReadings.size();
-
- if (sizeRecords < 4 || bgReadings.get(sizeRecords - 4).timeIndex < new Date().getTime() - 7 * 60 * 1000L) {
+ Dao daoTreatments = getDaoTreatments();
+ QueryBuilder queryBuilder = daoTreatments.queryBuilder();
+ Where where = queryBuilder.where();
+ where.eq("_id", _id);
+ queryBuilder.limit(10L);
+ PreparedQuery preparedQuery = queryBuilder.prepare();
+ List trList = daoTreatments.query(preparedQuery);
+ if (trList.size() != 1) {
+ //log.debug("Treatment findTreatmentById query size: " + trList.size());
return null;
- }
-
- double minutes = 5;
- double change;
- double avg;
-
- if (bgReadings.size() > 3) {
- BgReading now = bgReadings.get(sizeRecords - 4);
- BgReading last = bgReadings.get(sizeRecords - 3);
- BgReading last1 = bgReadings.get(sizeRecords - 2);
- BgReading last2 = bgReadings.get(sizeRecords - 1);
- if (last2.value > 38) {
- minutes = (now.timeIndex - last2.timeIndex)/(60d*1000);
- change = now.value - last2.value;
- } else if (last1.value > 38) {
- minutes = (now.timeIndex - last1.timeIndex)/(60d*1000);;
- change = now.value - last1.value;
- } else if (last.value > 38) {
- minutes = (now.timeIndex - last.timeIndex)/(60d*1000);
- change = now.value - last.value;
- } else {
- change = 0;
- }
- //multiply by 5 to get the same unit as delta, i.e. mg/dL/5m
- avg = change / minutes * 5;
-
- result.glucose = now.value;
- result.delta = (now.value - last.value)*5*60*1000/(now.getTimeIndex() - last.getTimeIndex());
- result.avgdelta = avg;
+ } else {
+ //log.debug("Treatment findTreatmentById found: " + trList.get(0).log());
+ return trList.get(0);
}
} catch (SQLException e) {
e.printStackTrace();
- return null;
}
- result.round();
- return result;
+ return null;
}
+
+ @Nullable
+ public Treatment findTreatmentByTimeIndex(Long timeIndex) {
+ try {
+ QueryBuilder qb = null;
+ Dao daoTreatments = getDaoTreatments();
+ QueryBuilder queryBuilder = daoTreatments.queryBuilder();
+ Where where = queryBuilder.where();
+ where.eq("timeIndex", timeIndex);
+ queryBuilder.limit(10L);
+ PreparedQuery preparedQuery = queryBuilder.prepare();
+ List trList = daoTreatments.query(preparedQuery);
+ if (trList.size() != 1) {
+ log.debug("Treatment findTreatmentByTimeIndex query size: " + trList.size());
+ return null;
+ } else {
+ log.debug("Treatment findTreatmentByTimeIndex found: " + trList.get(0).log());
+ return trList.get(0);
+ }
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ static public void scheduleTreatmentChange() {
+ class PostRunnable implements Runnable {
+ public void run() {
+ MainApp.bus().post(new EventTreatmentChange());
+ scheduledPost = null;
+ }
+ }
+ // prepare task for execution in 5 sec
+ // cancel waiting task to prevent sending multiple posts
+ if (scheduledPost != null)
+ scheduledPost.cancel(false);
+ Runnable task = new PostRunnable();
+ final int sec = 5;
+ scheduledPost = worker.schedule(task, sec, TimeUnit.SECONDS);
+
+ }
+
+ public List getTreatmentDataFromTime(long mills, boolean ascending) {
+ try {
+ Dao daoTreatments = getDaoTreatments();
+ List treatments;
+ QueryBuilder queryBuilder = daoTreatments.queryBuilder();
+ queryBuilder.orderBy("timeIndex", ascending);
+ Where where = queryBuilder.where();
+ where.ge("timeIndex", mills);
+ PreparedQuery preparedQuery = queryBuilder.prepare();
+ treatments = daoTreatments.query(preparedQuery);
+ return treatments;
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return new ArrayList();
+ }
+
+ public List getTemptargetsDataFromTime(long mills, boolean ascending) {
+ try {
+ Dao daoTempTargets = getDaoTempTargets();
+ List tempTargets;
+ QueryBuilder queryBuilder = daoTempTargets.queryBuilder();
+ queryBuilder.orderBy("timeIndex", ascending);
+ Where where = queryBuilder.where();
+ where.ge("timeIndex", mills);
+ PreparedQuery preparedQuery = queryBuilder.prepare();
+ tempTargets = daoTempTargets.query(preparedQuery);
+ return tempTargets;
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return new ArrayList();
+ }
+
+
+ public List getTempbasalsDataFromTime(long mills, boolean ascending, boolean isExtended) {
+ try {
+ Dao daoTempbasals = getDaoTempBasals();
+ List tempbasals;
+ QueryBuilder queryBuilder = daoTempbasals.queryBuilder();
+ queryBuilder.orderBy("timeIndex", ascending);
+ Where where = queryBuilder.where();
+ where.ge("timeIndex", mills).and().eq("isExtended", isExtended);
+ PreparedQuery preparedQuery = queryBuilder.prepare();
+ tempbasals = daoTempbasals.query(preparedQuery);
+ return tempbasals;
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return new ArrayList();
+ }
+
}
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 649ada3738..99389777d5 100644
--- a/app/src/main/java/info/nightscout/androidaps/db/TempBasal.java
+++ b/app/src/main/java/info/nightscout/androidaps/db/TempBasal.java
@@ -10,7 +10,7 @@ import java.util.Date;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.data.Iob;
-import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal;
+import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.client.data.NSProfile;
import info.nightscout.utils.DateUtil;
import info.nightscout.utils.DecimalFormatter;
@@ -53,7 +53,7 @@ public class TempBasal {
public IobTotal iobCalc(Date time) {
- IobTotal result = new IobTotal();
+ IobTotal result = new IobTotal(time.getTime());
NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
if (profile == null)
@@ -131,7 +131,7 @@ public class TempBasal {
public int getRealDuration() {
Long msecs = getTimeEnd().getTime() - timeStart.getTime();
- return (int) (msecs / 60 / 1000);
+ return Math.round(msecs / 60f / 1000);
}
public long getMillisecondsFromStart() {
@@ -140,8 +140,8 @@ public class TempBasal {
public int getPlannedRemainingMinutes() {
if (timeEnd != null) return 0;
- long remainingMin = (getPlannedTimeEnd().getTime() - new Date().getTime()) / 1000 / 60;
- return (remainingMin < 0) ? 0 : (int) remainingMin;
+ float remainingMin = (getPlannedTimeEnd().getTime() - new Date().getTime()) / 1000f / 60;
+ return (remainingMin < 0) ? 0 : Math.round(remainingMin);
}
public boolean isInProgress() {
diff --git a/app/src/main/java/info/nightscout/androidaps/db/TempTarget.java b/app/src/main/java/info/nightscout/androidaps/db/TempTarget.java
new file mode 100644
index 0000000000..051a1d3d40
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/db/TempTarget.java
@@ -0,0 +1,78 @@
+package info.nightscout.androidaps.db;
+
+import com.j256.ormlite.field.DatabaseField;
+import com.j256.ormlite.table.DatabaseTable;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Date;
+
+import info.nightscout.androidaps.Constants;
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.plugins.TempTargetRange.TempTargetRangePlugin;
+import info.nightscout.utils.DecimalFormatter;
+
+@DatabaseTable(tableName = DatabaseHelper.DATABASE_TEMPTARGETS)
+public class TempTarget {
+ private static Logger log = LoggerFactory.getLogger(TempTarget.class);
+
+ public long getTimeIndex() {
+ return timeStart.getTime() - timeStart.getTime() % 1000;
+ }
+
+ public void setTimeIndex(long timeIndex) {
+ this.timeIndex = timeIndex;
+ }
+
+ @DatabaseField(id = true, useGetSet = true)
+ public long timeIndex;
+
+ @DatabaseField
+ public Date timeStart;
+
+ @DatabaseField
+ public double low; // in mgdl
+
+ @DatabaseField
+ public double high; // in mgdl
+
+ @DatabaseField
+ public String reason;
+
+ @DatabaseField
+ public int duration; // in minutes
+
+ @DatabaseField
+ public String _id; // NS _id
+
+ public Date getPlannedTimeEnd() {
+ return new Date(timeStart.getTime() + 60 * 1_000 * duration);
+ }
+
+ public String lowValueToUnitsToString(String units) {
+ if (units.equals(Constants.MGDL)) return DecimalFormatter.to0Decimal(low);
+ else return DecimalFormatter.to1Decimal(low * Constants.MGDL_TO_MMOLL);
+ }
+
+ public String highValueToUnitsToString(String units) {
+ if (units.equals(Constants.MGDL)) return DecimalFormatter.to0Decimal(high);
+ else return DecimalFormatter.to1Decimal(low * Constants.MGDL_TO_MMOLL);
+ }
+
+ public boolean isInProgress() {
+ return ((TempTargetRangePlugin) MainApp.getSpecificPlugin(TempTargetRangePlugin.class)).getTempTargetInProgress(new Date().getTime()) == this;
+ }
+
+ public String log() {
+ return "TempTarget{" +
+ "timeIndex=" + timeIndex +
+ ", timeStart=" + timeStart +
+ ", duration=" + duration +
+ ", reason=" + reason +
+ ", low=" + low +
+ ", high=" + high +
+ '}';
+ }
+
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventBolusRequested.java b/app/src/main/java/info/nightscout/androidaps/events/EventBolusRequested.java
new file mode 100644
index 0000000000..1f41119b4b
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventBolusRequested.java
@@ -0,0 +1,21 @@
+package info.nightscout.androidaps.events;
+
+/**
+ * Created by adrian on 07/02/17.
+ */
+
+public class EventBolusRequested {
+ private double amount;
+
+ public EventBolusRequested (double amount){
+ this.amount = amount;
+ }
+
+ public double getAmount() {
+ return amount;
+ }
+
+ public void setAmount(double amount) {
+ this.amount = amount;
+ }
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/APSInterface.java b/app/src/main/java/info/nightscout/androidaps/interfaces/APSInterface.java
index 5d1f166b63..11c01112ba 100644
--- a/app/src/main/java/info/nightscout/androidaps/interfaces/APSInterface.java
+++ b/app/src/main/java/info/nightscout/androidaps/interfaces/APSInterface.java
@@ -11,5 +11,5 @@ public interface APSInterface {
public APSResult getLastAPSResult();
public Date getLastAPSRun();
- public void invoke();
+ public void invoke(String initiator);
}
diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/PluginBase.java b/app/src/main/java/info/nightscout/androidaps/interfaces/PluginBase.java
index 3fe4b675c7..4442b83041 100644
--- a/app/src/main/java/info/nightscout/androidaps/interfaces/PluginBase.java
+++ b/app/src/main/java/info/nightscout/androidaps/interfaces/PluginBase.java
@@ -21,6 +21,7 @@ public interface PluginBase {
String getFragmentClass();
String getName();
+ String getNameShort();
boolean isEnabled(int type);
boolean isVisibleInTabs(int type);
boolean canBeHidden(int type);
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 cde760fc28..550b05103e 100644
--- a/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java
+++ b/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java
@@ -17,6 +17,8 @@ import info.nightscout.client.data.NSProfile;
public interface PumpInterface {
boolean isInitialized();
+ boolean isSuspended();
+ boolean isBusy();
boolean isTempBasalInProgress();
boolean isExtendedBoluslInProgress();
@@ -28,6 +30,9 @@ public interface PumpInterface {
int setNewBasalProfile(NSProfile profile);
boolean isThisProfileSet(NSProfile profile);
+ Date lastStatusTime();
+ void updateStatus(String reason);
+
double getBaseBasalRate(); // base basal rate, not temp basal
double getTempBasalAbsoluteRate();
double getTempBasalRemainingMinutes();
@@ -48,4 +53,6 @@ public interface PumpInterface {
String deviceID();
PumpDescription getPumpDescription();
+
+ public String shortStatus(boolean veryShort);
}
diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/TempBasalsInterface.java b/app/src/main/java/info/nightscout/androidaps/interfaces/TempBasalsInterface.java
index 0abb176734..aa01d77adb 100644
--- a/app/src/main/java/info/nightscout/androidaps/interfaces/TempBasalsInterface.java
+++ b/app/src/main/java/info/nightscout/androidaps/interfaces/TempBasalsInterface.java
@@ -3,7 +3,7 @@ package info.nightscout.androidaps.interfaces;
import java.util.Date;
import info.nightscout.androidaps.db.TempBasal;
-import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal;
+import info.nightscout.androidaps.data.IobTotal;
/**
* Created by mike on 14.06.2016.
@@ -11,7 +11,10 @@ import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal;
public interface TempBasalsInterface {
void updateTotalIOB();
IobTotal getLastCalculation();
+ IobTotal getCalculationToTime(long time);
TempBasal getTempBasal (Date time);
TempBasal getExtendedBolus (Date time);
+
+ long oldestDataAvaialable();
}
diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/TreatmentsInterface.java b/app/src/main/java/info/nightscout/androidaps/interfaces/TreatmentsInterface.java
index 26641193b4..efb5f85fd0 100644
--- a/app/src/main/java/info/nightscout/androidaps/interfaces/TreatmentsInterface.java
+++ b/app/src/main/java/info/nightscout/androidaps/interfaces/TreatmentsInterface.java
@@ -2,10 +2,9 @@ package info.nightscout.androidaps.interfaces;
import java.util.List;
+import info.nightscout.androidaps.data.MealData;
import info.nightscout.androidaps.db.Treatment;
-import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal;
-import info.nightscout.androidaps.plugins.Treatments.TreatmentsFragment;
-import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin;
+import info.nightscout.androidaps.data.IobTotal;
/**
* Created by mike on 14.06.2016.
@@ -14,6 +13,7 @@ public interface TreatmentsInterface {
void updateTotalIOB();
IobTotal getLastCalculation();
- TreatmentsPlugin.MealData getMealData();
+ IobTotal getCalculationToTime(long time);
+ MealData getMealData();
List getTreatments();
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsFragment.java
index 88643752ee..c3ea14dc79 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsFragment.java
@@ -12,6 +12,7 @@ import android.widget.Button;
import com.squareup.otto.Subscribe;
+import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.events.EventInitializationChanged;
@@ -35,6 +36,7 @@ public class ActionsFragment extends Fragment implements FragmentBase, View.OnCl
}
Button profileSwitch;
+ Button tempTarget;
Button extendedBolus;
Button tempBasal;
Button fill;
@@ -49,11 +51,13 @@ public class ActionsFragment extends Fragment implements FragmentBase, View.OnCl
View view = inflater.inflate(R.layout.actions_fragment, container, false);
profileSwitch = (Button) view.findViewById(R.id.actions_profileswitch);
+ tempTarget = (Button) view.findViewById(R.id.actions_temptarget);
extendedBolus = (Button) view.findViewById(R.id.actions_extendedbolus);
tempBasal = (Button) view.findViewById(R.id.actions_settempbasal);
fill = (Button) view.findViewById(R.id.actions_fill);
profileSwitch.setOnClickListener(this);
+ tempTarget.setOnClickListener(this);
extendedBolus.setOnClickListener(this);
tempBasal.setOnClickListener(this);
fill.setOnClickListener(this);
@@ -90,22 +94,26 @@ public class ActionsFragment extends Fragment implements FragmentBase, View.OnCl
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
- if (!MainApp.getConfigBuilder().getPumpDescription().isSetBasalProfileCapable || !MainApp.getConfigBuilder().isInitialized())
+ if (!MainApp.getConfigBuilder().getPumpDescription().isSetBasalProfileCapable || !MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended())
profileSwitch.setVisibility(View.GONE);
else
profileSwitch.setVisibility(View.VISIBLE);
- if (!MainApp.getConfigBuilder().getPumpDescription().isExtendedBolusCapable || !MainApp.getConfigBuilder().isInitialized())
+ if (!MainApp.getConfigBuilder().getPumpDescription().isExtendedBolusCapable || !MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended())
extendedBolus.setVisibility(View.GONE);
else
extendedBolus.setVisibility(View.VISIBLE);
- if (!MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable || !MainApp.getConfigBuilder().isInitialized())
+ if (!MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable || !MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended())
tempBasal.setVisibility(View.GONE);
else
tempBasal.setVisibility(View.VISIBLE);
- if (!MainApp.getConfigBuilder().getPumpDescription().isRefillingCapable || !MainApp.getConfigBuilder().isInitialized())
+ if (!MainApp.getConfigBuilder().getPumpDescription().isRefillingCapable || !MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended())
fill.setVisibility(View.GONE);
else
fill.setVisibility(View.VISIBLE);
+ if (!Config.APS)
+ tempTarget.setVisibility(View.GONE);
+ else
+ tempTarget.setVisibility(View.VISIBLE);
}
});
}
@@ -117,11 +125,18 @@ public class ActionsFragment extends Fragment implements FragmentBase, View.OnCl
switch (view.getId()) {
case R.id.actions_profileswitch:
NewNSTreatmentDialog newDialog = new NewNSTreatmentDialog();
- final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false);
+ final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false, false);
profileswitch.executeProfileSwitch = true;
newDialog.setOptions(profileswitch);
newDialog.show(manager, "NewNSTreatmentDialog");
break;
+ case R.id.actions_temptarget:
+ NewNSTreatmentDialog newTTDialog = new NewNSTreatmentDialog();
+ final OptionsToShow temptarget = new OptionsToShow(R.id.careportal_temporarytarget, R.string.careportal_temporarytarget, false, false, false, false, true, false, false, false, false, true);
+ temptarget.executeTempTarget = true;
+ newTTDialog.setOptions(temptarget);
+ newTTDialog.show(manager, "NewNSTreatmentDialog");
+ break;
case R.id.actions_extendedbolus:
NewExtendedBolusDialog newExtendedDialog = new NewExtendedBolusDialog();
newExtendedDialog.show(manager, "NewExtendedDialog");
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsPlugin.java
index df283bac13..eedd0e4baf 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsPlugin.java
@@ -28,6 +28,17 @@ public class ActionsPlugin implements PluginBase {
return MainApp.sResources.getString(R.string.actions);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.actions_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;
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 f95bdc41b4..ea0ef114e8 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
@@ -151,7 +151,7 @@ public class NewTempBasalDialog extends DialogFragment implements View.OnClickLi
}
if (!result.success) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
- builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror));
+ builder.setTitle(MainApp.sResources.getString(R.string.tempbasaldeliveryerror));
builder.setMessage(result.comment);
builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null);
builder.show();
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalFragment.java
index 05245bd0b1..69db12c29b 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalFragment.java
@@ -8,10 +8,8 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.interfaces.FragmentBase;
-import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialog;
public class CareportalFragment extends Fragment implements FragmentBase, View.OnClickListener {
@@ -25,25 +23,26 @@ public class CareportalFragment extends Fragment implements FragmentBase, View.O
return careportalPlugin;
}
- // bg,insulin,carbs,prebolus,duration,percent,absolute,profile,split
- final OptionsToShow bgcheck = new OptionsToShow(R.id.careportal_bgcheck, R.string.careportal_bgcheck, true, true, true, false, false, false, false, false, false);
- final OptionsToShow snackbolus = new OptionsToShow(R.id.careportal_snackbolus, R.string.careportal_snackbolus, true, true, true, true, false, false, false, false, false);
- final OptionsToShow mealbolus = new OptionsToShow(R.id.careportal_mealbolus, R.string.careportal_mealbolus, true, true, true, true, false, false, false, false, false);
- final OptionsToShow correctionbolus = new OptionsToShow(R.id.careportal_correctionbolus, R.string.careportal_correctionbolus, true, true, true, true, false, false, false, false, false);
- final OptionsToShow carbcorrection = new OptionsToShow(R.id.careportal_carbscorrection, R.string.careportal_carbscorrection, true, false, true, false, false, false, false, false, false);
- final OptionsToShow combobolus = new OptionsToShow(R.id.careportal_combobolus, R.string.careportal_combobolus, true, true, true, true, true, false, false, false, true);
- final OptionsToShow announcement = new OptionsToShow(R.id.careportal_announcement, R.string.careportal_announcement, true, false, false, false, false, false, false, false, false);
- final OptionsToShow note = new OptionsToShow(R.id.careportal_note, R.string.careportal_note, true, false, false, false, true, false, false, false, false);
- final OptionsToShow question = new OptionsToShow(R.id.careportal_question, R.string.careportal_question, true, false, false, false, false, false, false, false, false);
- final OptionsToShow exercise = new OptionsToShow(R.id.careportal_exercise, R.string.careportal_exercise, false, false, false, false, true, false, false, false, false);
- final OptionsToShow sitechange = new OptionsToShow(R.id.careportal_pumpsitechange, R.string.careportal_pumpsitechange, true, true, false, false, false, false, false, false, false);
- final OptionsToShow sensorstart = new OptionsToShow(R.id.careportal_cgmsensorstart, R.string.careportal_cgmsensorstart, true, false, false, false, false, false, false, false, false);
- final OptionsToShow sensorchange = new OptionsToShow(R.id.careportal_cgmsensorinsert, R.string.careportal_cgmsensorinsert, true, false, false, false, false, false, false, false, false);
- final OptionsToShow insulinchange = new OptionsToShow(R.id.careportal_insulincartridgechange, R.string.careportal_insulincartridgechange, true, false, false, false, false, false, false, false, false);
- final OptionsToShow tempbasalstart = new OptionsToShow(R.id.careportal_tempbasalstart, R.string.careportal_tempbasalstart, true, false, false, false, true, true, true, false, false);
- final OptionsToShow tempbasalend = new OptionsToShow(R.id.careportal_tempbasalend, R.string.careportal_tempbasalend, true, false, false, false, false, false, false, false, false);
- final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false);
- final OptionsToShow openapsoffline = new OptionsToShow(R.id.careportal_openapsoffline, R.string.careportal_openapsoffline, false, false, false, false, true, false, false, false, false);
+ // bg,insulin,carbs,prebolus,duration,percent,absolute,profile,split,temptarget
+ final OptionsToShow bgcheck = new OptionsToShow(R.id.careportal_bgcheck, R.string.careportal_bgcheck, true, true, true, false, false, false, false, false, false, false);
+ final OptionsToShow snackbolus = new OptionsToShow(R.id.careportal_snackbolus, R.string.careportal_snackbolus, true, true, true, true, false, false, false, false, false, false);
+ final OptionsToShow mealbolus = new OptionsToShow(R.id.careportal_mealbolus, R.string.careportal_mealbolus, true, true, true, true, false, false, false, false, false, false);
+ final OptionsToShow correctionbolus = new OptionsToShow(R.id.careportal_correctionbolus, R.string.careportal_correctionbolus, true, true, true, true, false, false, false, false, false, false);
+ final OptionsToShow carbcorrection = new OptionsToShow(R.id.careportal_carbscorrection, R.string.careportal_carbscorrection, true, false, true, false, false, false, false, false, false, false);
+ final OptionsToShow combobolus = new OptionsToShow(R.id.careportal_combobolus, R.string.careportal_combobolus, true, true, true, true, true, false, false, false, true, false);
+ final OptionsToShow announcement = new OptionsToShow(R.id.careportal_announcement, R.string.careportal_announcement, true, false, false, false, false, false, false, false, false, false);
+ final OptionsToShow note = new OptionsToShow(R.id.careportal_note, R.string.careportal_note, true, false, false, false, true, false, false, false, false, false);
+ final OptionsToShow question = new OptionsToShow(R.id.careportal_question, R.string.careportal_question, true, false, false, false, false, false, false, false, false, false);
+ final OptionsToShow exercise = new OptionsToShow(R.id.careportal_exercise, R.string.careportal_exercise, false, false, false, false, true, false, false, false, false, false);
+ final OptionsToShow sitechange = new OptionsToShow(R.id.careportal_pumpsitechange, R.string.careportal_pumpsitechange, true, true, false, false, false, false, false, false, false, false);
+ final OptionsToShow sensorstart = new OptionsToShow(R.id.careportal_cgmsensorstart, R.string.careportal_cgmsensorstart, true, false, false, false, false, false, false, false, false, false);
+ final OptionsToShow sensorchange = new OptionsToShow(R.id.careportal_cgmsensorinsert, R.string.careportal_cgmsensorinsert, true, false, false, false, false, false, false, false, false, false);
+ final OptionsToShow insulinchange = new OptionsToShow(R.id.careportal_insulincartridgechange, R.string.careportal_insulincartridgechange, true, false, false, false, false, false, false, false, false, false);
+ final OptionsToShow tempbasalstart = new OptionsToShow(R.id.careportal_tempbasalstart, R.string.careportal_tempbasalstart, true, false, false, false, true, true, true, false, false, false);
+ final OptionsToShow tempbasalend = new OptionsToShow(R.id.careportal_tempbasalend, R.string.careportal_tempbasalend, true, false, false, false, false, false, false, false, false, false);
+ final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false, false);
+ final OptionsToShow openapsoffline = new OptionsToShow(R.id.careportal_openapsoffline, R.string.careportal_openapsoffline, false, false, false, false, true, false, false, false, false, false);
+ final OptionsToShow temptarget = new OptionsToShow(R.id.careportal_temporarytarget, R.string.careportal_temporarytarget, false, false, false, false, true, false, false, false, false, true);
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
@@ -68,6 +67,7 @@ public class CareportalFragment extends Fragment implements FragmentBase, View.O
view.findViewById(R.id.careportal_tempbasalend).setOnClickListener(this);
view.findViewById(R.id.careportal_tempbasalstart).setOnClickListener(this);
view.findViewById(R.id.careportal_openapsoffline).setOnClickListener(this);
+ view.findViewById(R.id.careportal_temporarytarget).setOnClickListener(this);
return view;
}
@@ -130,6 +130,9 @@ public class CareportalFragment extends Fragment implements FragmentBase, View.O
case R.id.careportal_openapsoffline:
newDialog.setOptions(openapsoffline);
break;
+ case R.id.careportal_temporarytarget:
+ newDialog.setOptions(temptarget);
+ break;
default:
newDialog = null;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalPlugin.java
index 87f9f0f817..9fd4cbca85 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalPlugin.java
@@ -24,6 +24,17 @@ public class CareportalPlugin implements PluginBase {
return MainApp.sResources.getString(R.string.careportal);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.careportal_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;
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 b941cdb4c2..4c93b88102 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
@@ -13,17 +13,20 @@ import android.support.v4.app.FragmentActivity;
import android.support.v7.app.AlertDialog;
import android.text.Editable;
import android.text.TextWatcher;
+import android.text.format.DateFormat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
+import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.TextView;
+import com.j256.ormlite.dao.Dao;
import com.wdullaer.materialdatetimepicker.date.DatePickerDialog;
import com.wdullaer.materialdatetimepicker.time.RadialPickerLayout;
import com.wdullaer.materialdatetimepicker.time.TimePickerDialog;
@@ -33,6 +36,7 @@ import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.sql.SQLException;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Calendar;
@@ -42,10 +46,14 @@ import java.util.Date;
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.db.TempTarget;
import info.nightscout.androidaps.events.EventNewBasalProfile;
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.client.data.NSProfile;
import info.nightscout.utils.DateUtil;
import info.nightscout.utils.PlusMinusEditText;
@@ -73,6 +81,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
LinearLayout layoutAbsolute;
LinearLayout layoutCarbTime;
LinearLayout layoutProfile;
+ LinearLayout layoutTempTarget;
Button dateButton;
Button timeButton;
Button okButton;
@@ -91,6 +100,9 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
EditText carbTimeEdit;
EditText splitEdit;
Spinner profileSpinner;
+ EditText low;
+ EditText high;
+ Spinner reasonSpinner;
PlusMinusEditText editBg;
PlusMinusEditText editCarbs;
@@ -142,6 +154,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
layoutAbsolute = (LinearLayout) view.findViewById(R.id.careportal_newnstreatment_absolute_layout);
layoutCarbTime = (LinearLayout) view.findViewById(R.id.careportal_newnstreatment_carbtime_layout);
layoutProfile = (LinearLayout) view.findViewById(R.id.careportal_newnstreatment_profile_layout);
+ layoutTempTarget = (LinearLayout) view.findViewById(R.id.careportal_newnstreatment_temptarget_layout);
bgUnitsView = (TextView) view.findViewById(R.id.careportal_newnstreatment_bgunits);
meterRadioButton = (RadioButton) view.findViewById(R.id.careportal_newnstreatment_meter);
@@ -193,6 +206,10 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
notesEdit = (EditText) view.findViewById(R.id.careportal_newnstreatment_notes);
splitEdit = (EditText) view.findViewById(R.id.careportal_newnstreatment_splitinput);
+ reasonSpinner = (Spinner) view.findViewById(R.id.careportal_newnstreatment_temptarget_reason);
+ low = (EditText) view.findViewById(R.id.careportal_temptarget_low);
+ high = (EditText) view.findViewById(R.id.careportal_temptarget_high);
+
eventTime = new Date();
dateButton = (Button) view.findViewById(R.id.careportal_newnstreatment_eventdate);
timeButton = (Button) view.findViewById(R.id.careportal_newnstreatment_eventtime);
@@ -204,7 +221,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
okButton = (Button) view.findViewById(R.id.careportal_newnstreatment_ok);
okButton.setOnClickListener(this);
- // BG
+ // profile
profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
ArrayList profileList;
units = Constants.MGDL;
@@ -227,6 +244,17 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
}
}
+ // temp target
+ ArrayList reasonList = new ArrayList();
+ reasonList.add(MainApp.sResources.getString(R.string.eatingsoon));
+ reasonList.add(MainApp.sResources.getString(R.string.activity));
+ reasonList.add(MainApp.sResources.getString(R.string.manual));
+ ArrayAdapter adapterReason = new ArrayAdapter(getContext(),
+ android.R.layout.simple_spinner_item, reasonList);
+ adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ reasonSpinner.setAdapter(adapterReason);
+
+ // bg
bgUnitsView.setText(units);
// Set BG if not old
@@ -239,10 +267,32 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
// meterRadioButton.setChecked(true);
// }
- if (units.equals(Constants.MMOL))
- editBg = new PlusMinusEditText(view, R.id.careportal_newnstreatment_bginput, R.id.careportal_newnstreatment_bg_plus, R.id.careportal_newnstreatment_bg_minus, 0d, 0d, 40d, 0.1d, new DecimalFormat("0.0"), false);
+ Double bg = NSProfile.fromMgdlToUnits(GlucoseStatus.getGlucoseStatusData() != null ? GlucoseStatus.getGlucoseStatusData().glucose : 0d, profile != null ? profile.getUnits() : Constants.MGDL);
+ if (profile == null)
+ editBg = new PlusMinusEditText(view, R.id.careportal_newnstreatment_bginput, R.id.careportal_newnstreatment_bg_plus, R.id.careportal_newnstreatment_bg_minus, bg, 0d, 500d, 0.1d, new DecimalFormat("0.0"), false);
+ else if (profile.getUnits().equals(Constants.MMOL))
+ editBg = new PlusMinusEditText(view, R.id.careportal_newnstreatment_bginput, R.id.careportal_newnstreatment_bg_plus, R.id.careportal_newnstreatment_bg_minus, bg, 0d, 30d, 0.1d, new DecimalFormat("0.0"), false);
else
- editBg = new PlusMinusEditText(view, R.id.careportal_newnstreatment_bginput, R.id.careportal_newnstreatment_bg_plus, R.id.careportal_newnstreatment_bg_minus, 0d, 0d, 500d, 1d, new DecimalFormat("0"), false);
+ editBg = new PlusMinusEditText(view, R.id.careportal_newnstreatment_bginput, R.id.careportal_newnstreatment_bg_plus, R.id.careportal_newnstreatment_bg_minus, bg, 0d, 500d, 1d, new DecimalFormat("0"), false);
+ bgInputEdit.addTextChangedListener(new TextWatcher() {
+
+ public void afterTextChanged(Editable s) {}
+
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
+
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ if (sensorRadioButton.isChecked()) meterRadioButton.setChecked(true);
+ }
+ });
+ sensorRadioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ NSProfile profile = ConfigBuilderPlugin.getActiveProfile().getProfile();
+ if (profile == null) return;
+ Double bg = NSProfile.fromMgdlToUnits(GlucoseStatus.getGlucoseStatusData() != null ? GlucoseStatus.getGlucoseStatusData().glucose : 0d, profile.getUnits());
+ editBg.setValue(bg);
+ }
+ });
Integer maxCarbs = MainApp.getConfigBuilder().applyCarbsConstraints(Constants.carbsOnlyForCheckLimit);
editCarbs = new PlusMinusEditText(view, R.id.careportal_newnstreatment_carbsinput, R.id.careportal_newnstreatment_carbs_plus, R.id.careportal_newnstreatment_carbs_minus, 0d, 0d, (double) maxCarbs, 1d, new DecimalFormat("0"), false);
@@ -271,6 +321,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
showOrHide(layoutAbsolute, options.absolute);
showOrHide(layoutCarbTime, options.prebolus);
showOrHide(layoutProfile, options.profile);
+ showOrHide(layoutTempTarget, options.tempTarget);
return view;
}
@@ -304,7 +355,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
this,
calendar.get(Calendar.HOUR_OF_DAY),
calendar.get(Calendar.MINUTE),
- df.is24HourFormat(context)
+ DateFormat.is24HourFormat(context)
);
tpd.setThemeDark(true);
tpd.dismissOnPause(true);
@@ -344,6 +395,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
String enteredBy = SP.getString("careportal_enteredby", "");
JSONObject data = new JSONObject();
try {
+ boolean allowZeroDuration = false;
data.put("created_at", DateUtil.toISOString(eventTime));
switch (options.eventType) {
case R.id.careportal_bgcheck:
@@ -403,6 +455,16 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
case R.id.careportal_openapsoffline:
data.put("eventType", "OpenAPS Offline");
break;
+ case R.id.careportal_temporarytarget:
+ data.put("eventType", "Temporary Target");
+ if (!reasonSpinner.getSelectedItem().toString().equals(""))
+ data.put("reason", reasonSpinner.getSelectedItem().toString());
+ if (SafeParse.stringToDouble(low.getText().toString()) != 0d)
+ data.put("targetBottom", SafeParse.stringToDouble(low.getText().toString()));
+ if (SafeParse.stringToDouble(high.getText().toString()) != 0d)
+ data.put("targetTop", SafeParse.stringToDouble(high.getText().toString()));
+ allowZeroDuration = true;
+ break;
}
if (SafeParse.stringToDouble(bgInputEdit.getText().toString()) != 0d) {
data.put("glucose", SafeParse.stringToDouble(bgInputEdit.getText().toString()));
@@ -414,7 +476,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
data.put("carbs", SafeParse.stringToDouble(carbsEdit.getText().toString()));
if (SafeParse.stringToDouble(insulinEdit.getText().toString()) != 0d)
data.put("insulin", SafeParse.stringToDouble(insulinEdit.getText().toString()));
- if (SafeParse.stringToDouble(durationeEdit.getText().toString()) != 0d)
+ if (allowZeroDuration || SafeParse.stringToDouble(durationeEdit.getText().toString()) != 0d)
data.put("duration", SafeParse.stringToDouble(durationeEdit.getText().toString()));
if (layoutPercent.getVisibility() != View.GONE)
data.put("percent", SafeParse.stringToDouble(percentEdit.getText().toString()));
@@ -509,6 +571,14 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
ret += data.get("profile");
ret += "\n";
}
+ if (data.has("targetBottom") && data.has("targetTop")) {
+ ret += getString(R.string.target_range);
+ ret += " ";
+ ret += data.get("targetBottom");
+ ret += " - ";
+ ret += data.get("targetTop");
+ ret += "\n";
+ }
if (data.has("created_at")) {
ret += getString(R.string.careportal_newnstreatment_eventtime_label);
ret += ": ";
@@ -543,7 +613,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
public void run() {
try {
String profile = data.getString("profile");
- NSProfile nsProfile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
+ NSProfile nsProfile = ConfigBuilderPlugin.getActiveProfile().getProfile();
nsProfile.setActiveProfile(profile);
PumpInterface pump = MainApp.getConfigBuilder();
if (pump != null) {
@@ -553,6 +623,12 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
} else {
log.error("No active pump selected");
}
+ if (ConfigBuilderPlugin.getActiveProfile() instanceof CircadianPercentageProfilePlugin) {
+ CircadianPercentageProfilePlugin cpp = (CircadianPercentageProfilePlugin) ConfigBuilderPlugin.getActiveProfile();
+ data.put("CircadianPercentageProfile", true);
+ data.put("timeshift", cpp.timeshift);
+ data.put("percentage", cpp.percentage);
+ }
ConfigBuilderPlugin.uploadCareportalEntryToNS(data);
} catch (JSONException e) {
e.printStackTrace();
@@ -560,6 +636,39 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick
}
});
}
+ } else if (options.executeTempTarget) {
+ try {
+ if ((data.has("targetBottom") && data.has("targetTop")) || (data.has("duration")&& data.getInt("duration") == 0)) {
+ sHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ TempTarget tempTarget = new TempTarget();
+ tempTarget.timeStart = eventTime;
+ tempTarget.duration = data.getInt("duration");
+ tempTarget.reason = data.getString("reason");
+ if(tempTarget.duration != 0) {
+ tempTarget.low = NSProfile.toMgdl(data.getDouble("targetBottom"), ConfigBuilderPlugin.getActiveProfile().getProfile().getUnits());
+ tempTarget.high = NSProfile.toMgdl(data.getDouble("targetTop"), ConfigBuilderPlugin.getActiveProfile().getProfile().getUnits());
+ } else {
+ tempTarget.low = 0;
+ tempTarget.high = 0;
+ }
+ tempTarget.setTimeIndex(tempTarget.getTimeIndex());
+ Dao dao = MainApp.getDbHelper().getDaoTempTargets();
+ log.debug("Creating new TempTarget db record: " + tempTarget.log());
+ dao.createIfNotExists(tempTarget);
+ MainApp.bus().post(new EventTempTargetRangeChange());
+ ConfigBuilderPlugin.uploadCareportalEntryToNS(data);
+ } catch (JSONException | SQLException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
} else {
ConfigBuilderPlugin.uploadCareportalEntryToNS(data);
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/OptionsToShow.java b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/OptionsToShow.java
index e5a086c07e..23ce1dbcde 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/OptionsToShow.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/OptionsToShow.java
@@ -16,9 +16,11 @@ public class OptionsToShow {
public boolean absolute;
public boolean profile;
public boolean split;
+ public boolean tempTarget;
// perform direct actions
public boolean executeProfileSwitch = false;
+ public boolean executeTempTarget = false;
public OptionsToShow(int eventType,
int eventName,
@@ -30,7 +32,8 @@ public class OptionsToShow {
boolean percent,
boolean absolute,
boolean profile,
- boolean split) {
+ boolean split,
+ boolean tempTarget) {
this.eventType = eventType;
this.eventName = eventName;
this.bg = bg;
@@ -42,5 +45,6 @@ public class OptionsToShow {
this.absolute = absolute;
this.profile = profile;
this.split = split;
+ this.tempTarget = tempTarget;
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfileFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfileFragment.java
index 8158490197..bb4513b069 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfileFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfileFragment.java
@@ -4,22 +4,27 @@ package info.nightscout.androidaps.plugins.CircadianPercentageProfile;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
+import android.support.design.widget.Snackbar;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
+import android.support.v4.content.ContextCompat;
import android.text.Editable;
import android.text.Html;
import android.text.TextWatcher;
+import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
+import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.TextView;
+import com.andreabaccega.widget.FormEditText;
import com.squareup.otto.Subscribe;
import org.slf4j.Logger;
@@ -34,25 +39,24 @@ import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialo
import info.nightscout.androidaps.plugins.Careportal.OptionsToShow;
import info.nightscout.utils.DecimalFormatter;
import info.nightscout.utils.SafeParse;
-import info.nightscout.utils.ToastUtils;
public class CircadianPercentageProfileFragment extends Fragment implements FragmentBase {
private static Logger log = LoggerFactory.getLogger(CircadianPercentageProfileFragment.class);
private static CircadianPercentageProfilePlugin circadianPercentageProfilePlugin = new CircadianPercentageProfilePlugin();
+ private Object snackbarCaller;
public static CircadianPercentageProfilePlugin getPlugin() {
return circadianPercentageProfilePlugin;
}
- EditText diaView;
+ FormEditText diaView;
RadioButton mgdlView;
RadioButton mmolView;
- EditText carView;
- EditText targetlowView;
- EditText targethighView;
- EditText percentageView;
- EditText timeshiftView;
+ FormEditText targetlowView;
+ FormEditText targethighView;
+ FormEditText percentageView;
+ FormEditText timeshiftView;
TextView profileView;
TextView baseprofileIC;
TextView baseprofileBasal;
@@ -65,20 +69,25 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
ImageView iceditIcon;
ImageView isfeditIcon;
BasalEditDialog basalEditDialog;
+ FrameLayout fl;
+ Snackbar mSnackBar;
+ static Boolean percentageViewHint = true;
+ static Boolean timeshiftViewHint = true;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.circadianpercentageprofile_fragment, container, false);
- diaView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_dia);
+ fl = (FrameLayout) layout.findViewById(R.id.circadianpercentageprofile_framelayout);
+ fl.requestFocusFromTouch();
+ diaView = (FormEditText) layout.findViewById(R.id.circadianpercentageprofile_dia);
mgdlView = (RadioButton) layout.findViewById(R.id.circadianpercentageprofile_mgdl);
mmolView = (RadioButton) layout.findViewById(R.id.circadianpercentageprofile_mmol);
- carView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_car);
- targetlowView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_targetlow);
- targethighView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_targethigh);
- percentageView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_percentage);
- timeshiftView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_timeshift);
+ targetlowView = (FormEditText) layout.findViewById(R.id.circadianpercentageprofile_targetlow);
+ targethighView = (FormEditText) layout.findViewById(R.id.circadianpercentageprofile_targethigh);
+ percentageView = (FormEditText) layout.findViewById(R.id.circadianpercentageprofile_percentage);
+ timeshiftView = (FormEditText) layout.findViewById(R.id.circadianpercentageprofile_timeshift);
profileView = (TextView) layout.findViewById(R.id.circadianpercentageprofile_profileview);
baseprofileBasal = (TextView) layout.findViewById(R.id.circadianpercentageprofile_baseprofilebasal);
baseprofileBasalLayout = (LinearLayout) layout.findViewById(R.id.circadianpercentageprofile_baseprofilebasal_layout);
@@ -101,7 +110,6 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
mgdlView.setChecked(circadianPercentageProfilePlugin.mgdl);
mmolView.setChecked(circadianPercentageProfilePlugin.mmol);
diaView.setText(circadianPercentageProfilePlugin.dia.toString());
- carView.setText(circadianPercentageProfilePlugin.car.toString());
targetlowView.setText(circadianPercentageProfilePlugin.targetLow.toString());
targethighView.setText(circadianPercentageProfilePlugin.targetHigh.toString());
percentageView.setText("" + circadianPercentageProfilePlugin.percentage);
@@ -133,30 +141,13 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
@Override
public void onClick(View view) {
NewNSTreatmentDialog newDialog = new NewNSTreatmentDialog();
- final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false);
+ final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false, false);
profileswitch.executeProfileSwitch = true;
newDialog.setOptions(profileswitch);
newDialog.show(getFragmentManager(), "NewNSTreatmentDialog");
}
});
- timeshiftView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
- @Override
- public void onFocusChange(View view, boolean b) {
- if (b)
- ToastUtils.showToastInUiThread(getContext(), getString(R.string.timeshift_hint));
-
- }
- });
-
- percentageView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
- @Override
- public void onFocusChange(View view, boolean b) {
- if (b)
- ToastUtils.showToastInUiThread(getContext(), getString(R.string.percentagefactor_hint));
- }
- });
-
timeIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -204,6 +195,76 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
}
});
+ timeshiftView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+
+ @Override
+ public void onFocusChange(View view, boolean hasFocus) {
+ if (!hasFocus) {
+ if(mSnackBar!=null && snackbarCaller == timeshiftView){
+ mSnackBar.dismiss();
+ }
+ timeshiftView.clearFocus();
+ fl.requestFocusFromTouch();
+ }
+ else {
+ if (timeshiftViewHint) {
+ customSnackbar(view, getString(R.string.timeshift_hint), timeshiftView);
+ }
+ }
+ }
+ });
+
+ percentageView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+
+ @Override
+ public void onFocusChange(View view, boolean hasFocus) {
+ if (!hasFocus) {
+ if(mSnackBar!=null && snackbarCaller == percentageView){
+ mSnackBar.dismiss();
+ }
+ percentageView.clearFocus();
+ fl.requestFocusFromTouch();
+ }
+ else {
+ if (percentageViewHint) {
+ customSnackbar(view, getString(R.string.percentagefactor_hint), percentageView);
+ }
+ }
+ }
+ });
+
+ diaView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+
+ @Override
+ public void onFocusChange(View view, boolean hasFocus) {
+ if (!hasFocus) {
+ diaView.clearFocus();
+ fl.requestFocusFromTouch();
+ }
+ }
+ });
+
+ targethighView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+
+ @Override
+ public void onFocusChange(View view, boolean hasFocus) {
+ if (!hasFocus) {
+ targethighView.clearFocus();
+ fl.requestFocusFromTouch();
+ }
+ }
+ });
+
+ targetlowView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+
+ @Override
+ public void onFocusChange(View view, boolean hasFocus) {
+ if (!hasFocus) {
+ targetlowView.clearFocus();
+ fl.requestFocusFromTouch();
+ }
+ }
+ });
TextWatcher textWatch = new TextWatcher() {
@@ -220,23 +281,36 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
public void onTextChanged(CharSequence s, int start,
int before, int count) {
- if (SafeParse.stringToInt(percentageView.getText().toString()) == 0) {
- circadianPercentageProfilePlugin.percentage = 100;
- } else {
- circadianPercentageProfilePlugin.percentage = SafeParse.stringToInt(percentageView.getText().toString());
+ if (percentageView.testValidity()) {
+ if (SafeParse.stringToInt(percentageView.getText().toString()) == 0) {
+ circadianPercentageProfilePlugin.percentage = 100;
+ } else {
+ circadianPercentageProfilePlugin.percentage = SafeParse.stringToInt(percentageView.getText().toString());
+ }
+ updateProfileInfo();
+ }
+ if (timeshiftView.testValidity()) {
+ circadianPercentageProfilePlugin.timeshift = SafeParse.stringToInt(timeshiftView.getText().toString());
+ updateProfileInfo();
+ }
+ if (diaView.testValidity()) {
+ circadianPercentageProfilePlugin.dia = SafeParse.stringToDouble(diaView.getText().toString());
+ updateProfileInfo();
+ }
+ if (targethighView.testValidity()) {
+ circadianPercentageProfilePlugin.targetLow = SafeParse.stringToDouble(targetlowView.getText().toString());
+ updateProfileInfo();
+ }
+ if (targetlowView.testValidity()) {
+ circadianPercentageProfilePlugin.targetHigh = SafeParse.stringToDouble(targethighView.getText().toString());
+ updateProfileInfo();
}
- circadianPercentageProfilePlugin.dia = SafeParse.stringToDouble(diaView.getText().toString());
- circadianPercentageProfilePlugin.car = SafeParse.stringToDouble(carView.getText().toString());
- circadianPercentageProfilePlugin.targetLow = SafeParse.stringToDouble(targetlowView.getText().toString());
- circadianPercentageProfilePlugin.targetHigh = SafeParse.stringToDouble(targethighView.getText().toString());
- circadianPercentageProfilePlugin.timeshift = SafeParse.stringToInt(timeshiftView.getText().toString());
circadianPercentageProfilePlugin.storeSettings();
updateProfileInfo();
}
};
diaView.addTextChangedListener(textWatch);
- carView.addTextChangedListener(textWatch);
targetlowView.addTextChangedListener(textWatch);
targethighView.addTextChangedListener(textWatch);
percentageView.addTextChangedListener(textWatch);
@@ -247,6 +321,35 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
return layout;
}
+ private void customSnackbar(View view, final String Msg, Object snackbarCaller) {
+ if(mSnackBar!= null) mSnackBar.dismiss();
+
+ this.snackbarCaller = snackbarCaller;
+ if (timeshiftViewHint || percentageViewHint) {
+ //noinspection WrongConstant
+ mSnackBar = Snackbar.make(view, Msg, 7000)
+ .setActionTextColor(ContextCompat.getColor(MainApp.instance(), R.color.notificationInfo))
+ .setAction(getString(R.string.dont_show_again), new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (Msg.equals(getString(R.string.percentagefactor_hint))) {
+ percentageViewHint = false;
+ } else if (Msg.equals(getString(R.string.timeshift_hint))) {
+ timeshiftViewHint = false;
+ }
+ }
+ });
+ view = mSnackBar.getView();
+ FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view.getLayoutParams();
+ params.gravity = Gravity.CENTER_HORIZONTAL | Gravity.TOP;
+ view.setLayoutParams(params);
+ view.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.cardview_dark_background));
+ TextView mainTextView = (TextView) (view).findViewById(android.support.design.R.id.snackbar_text);
+ mainTextView.setTextColor(ContextCompat.getColor(MainApp.instance(), R.color.mdtp_white));
+ mSnackBar.show();
+ }
+ }
+
private void updateProfileInfo() {
StringBuilder sb = new StringBuilder();
sb.append("");
@@ -279,6 +382,7 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
basalEditDialog.dismiss();
}
basalEditDialog = null;
+ fl.requestFocusFromTouch();
}
public static class BasalEditDialog extends DialogFragment {
@@ -359,6 +463,7 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
basalEditDialog = null;
MainApp.bus().unregister(this);
+ fl.requestFocusFromTouch();
}
@Override
@@ -366,6 +471,7 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
super.onResume();
MainApp.bus().register(this);
onStatusEvent(null);
+ fl.requestFocusFromTouch();
}
@Subscribe
@@ -375,7 +481,7 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
- if (!MainApp.getConfigBuilder().isInitialized() || !MainApp.getConfigBuilder().getPumpDescription().isSetBasalProfileCapable) {
+ if (!MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended() || !MainApp.getConfigBuilder().getPumpDescription().isSetBasalProfileCapable) {
profileswitchButton.setVisibility(View.GONE);
} else {
profileswitchButton.setVisibility(View.VISIBLE);
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 274e1a941d..56aa813c29 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,6 @@ 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.OpenAPSMA.OpenAPSMAPlugin;
import info.nightscout.client.data.NSProfile;
import info.nightscout.utils.DecimalFormatter;
import info.nightscout.utils.SafeParse;
@@ -27,8 +26,6 @@ import info.nightscout.utils.ToastUtils;
*/
public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInterface {
public static final String SETTINGS_PREFIX = "CircadianPercentageProfile";
- public static final int MIN_PERCENTAGE = 50;
- public static final int MAX_PERCENTAGE = 200;
private static Logger log = LoggerFactory.getLogger(CircadianPercentageProfilePlugin.class);
private static boolean fragmentEnabled = true;
@@ -39,11 +36,10 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte
boolean mgdl;
boolean mmol;
Double dia;
- Double car;
Double targetLow;
Double targetHigh;
- int percentage;
- int timeshift;
+ public int percentage;
+ public int timeshift;
double[] basebasal = new double[]{1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d};
double[] baseisf = new double[]{35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d};
double[] baseic = new double[]{4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d};
@@ -67,6 +63,17 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte
return MainApp.instance().getString(R.string.circadian_percentage_profile);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.circadian_percentage_profile_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 == PROFILE && fragmentEnabled;
@@ -100,7 +107,6 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte
editor.putBoolean(SETTINGS_PREFIX + "mmol", mmol);
editor.putBoolean(SETTINGS_PREFIX + "mgdl", mgdl);
editor.putString(SETTINGS_PREFIX + "dia", dia.toString());
- editor.putString(SETTINGS_PREFIX + "car", car.toString());
editor.putString(SETTINGS_PREFIX + "targetlow", targetLow.toString());
editor.putString(SETTINGS_PREFIX + "targethigh", targetHigh.toString());
editor.putString(SETTINGS_PREFIX + "timeshift", timeshift + "");
@@ -142,13 +148,6 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte
log.debug(e.getMessage());
}
else dia = 3d;
- if (settings.contains(SETTINGS_PREFIX + "car"))
- try {
- car = SafeParse.stringToDouble(settings.getString(SETTINGS_PREFIX + "car", "20"));
- } catch (Exception e) {
- log.debug(e.getMessage());
- }
- else car = 20d;
if (settings.contains(SETTINGS_PREFIX + "targetlow"))
try {
targetLow = SafeParse.stringToDouble(settings.getString(SETTINGS_PREFIX + "targetlow", "80"));
@@ -228,9 +227,7 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte
}
profile.put("carbratio", icArray);
- profile.put("carbs_hr", car);
-
- 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));
}
@@ -262,13 +259,13 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte
}
private void performLimitCheck() {
- if (percentage < MIN_PERCENTAGE || percentage > 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);
ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), msg, R.raw.error);
- percentage = Math.max(percentage, MIN_PERCENTAGE);
- percentage = Math.min(percentage, MAX_PERCENTAGE);
+ percentage = Math.max(percentage, Constants.CPP_MIN_PERCENTAGE);
+ percentage = Math.min(percentage, Constants.CPP_MAX_PERCENTAGE);
}
}
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 7c23346711..bf9f3fb0b2 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
@@ -9,7 +9,9 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
+import android.widget.Button;
import android.widget.CheckBox;
+import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
@@ -28,6 +30,7 @@ import info.nightscout.androidaps.interfaces.ProfileInterface;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.NSProfile.NSProfilePlugin;
import info.nightscout.androidaps.plugins.VirtualPump.VirtualPumpPlugin;
+import info.nightscout.utils.PasswordProtection;
public class ConfigBuilderFragment extends Fragment implements FragmentBase {
@@ -62,9 +65,10 @@ public class ConfigBuilderFragment extends Fragment implements FragmentBase {
PluginCustomAdapter constraintsDataAdapter = null;
PluginCustomAdapter generalDataAdapter = null;
+ LinearLayout mainLayout;
+ Button unlock;
// TODO: sorting
- // TODO: Toast and sound when command failed
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
@@ -90,6 +94,25 @@ public class ConfigBuilderFragment extends Fragment implements FragmentBase {
if (ConfigBuilderPlugin.nightscoutVersionCode < 900)
nightscoutVerView.setTextColor(Color.RED);
setViews();
+
+ unlock = (Button) view.findViewById(R.id.configbuilder_unlock);
+ mainLayout = (LinearLayout) view.findViewById(R.id.configbuilder_mainlayout);
+
+ if (PasswordProtection.isLocked("settings_password")) {
+ mainLayout.setVisibility(View.GONE);
+ unlock.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ PasswordProtection.QueryPassword(getContext(), R.string.settings_password, "settings_password", new Runnable() {
+ @Override
+ public void run() {
+ mainLayout.setVisibility(View.VISIBLE);
+ unlock.setVisibility(View.GONE);
+ }
+ }, null);
+ }
+ });
+ }
return view;
}
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 ccbec0581f..a0b2a7b3b0 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
@@ -16,9 +16,12 @@ import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.MainApp;
@@ -27,6 +30,7 @@ import info.nightscout.androidaps.Services.Intents;
import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.db.TempBasal;
import info.nightscout.androidaps.db.Treatment;
+import info.nightscout.androidaps.events.EventBolusRequested;
import info.nightscout.androidaps.events.EventNewBG;
import info.nightscout.androidaps.events.EventTempBasalChange;
import info.nightscout.androidaps.events.EventTreatmentChange;
@@ -43,13 +47,13 @@ import info.nightscout.androidaps.plugins.DanaR.comm.MsgError;
import info.nightscout.androidaps.plugins.Loop.APSResult;
import info.nightscout.androidaps.plugins.Loop.DeviceStatus;
import info.nightscout.androidaps.plugins.Loop.LoopPlugin;
-import info.nightscout.androidaps.plugins.OpenAPSMA.DetermineBasalResult;
+import info.nightscout.androidaps.plugins.OpenAPSAMA.DetermineBasalResultAMA;
+import info.nightscout.androidaps.plugins.OpenAPSMA.DetermineBasalResultMA;
import info.nightscout.androidaps.plugins.Overview.Dialogs.BolusProgressDialog;
-import info.nightscout.androidaps.plugins.Actions.dialogs.NewExtendedBolusDialog;
+import info.nightscout.androidaps.plugins.Overview.Dialogs.BolusProgressHelperActivity;
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.androidaps.plugins.SmsCommunicator.SmsCommunicatorPlugin;
import info.nightscout.client.data.DbLogger;
import info.nightscout.client.data.NSProfile;
import info.nightscout.utils.DateUtil;
@@ -75,14 +79,16 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
static ArrayList pluginList;
- static Date lastDeviceStatusUpload = new Date(0);
+ private static final ScheduledExecutorService worker = Executors.newSingleThreadScheduledExecutor();
+ private static ScheduledFuture> scheduledPost = null;
PowerManager.WakeLock mWakeLock;
public ConfigBuilderPlugin() {
MainApp.bus().register(this);
PowerManager powerManager = (PowerManager) MainApp.instance().getApplicationContext().getSystemService(Context.POWER_SERVICE);
- mWakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "ConfigBuilderPlugin");;
+ mWakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "ConfigBuilderPlugin");
+ ;
}
@Override
@@ -100,6 +106,17 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
return MainApp.instance().getString(R.string.configbuilder);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.configbuilder_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 && true;
@@ -199,14 +216,14 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
public void logPluginStatus() {
for (PluginBase p : pluginList) {
log.debug(p.getName() + ":" +
- (p.isEnabled(1) ? " GENERAL" : "") +
- (p.isEnabled(2) ? " TREATMENT" : "") +
- (p.isEnabled(3) ? " TEMPBASAL" : "") +
- (p.isEnabled(4) ? " PROFILE" : "") +
- (p.isEnabled(5) ? " APS" : "") +
- (p.isEnabled(6) ? " PUMP" : "") +
- (p.isEnabled(7) ? " CONSTRAINTS" : "") +
- (p.isEnabled(8) ? " LOOP" : "") +
+ (p.isEnabled(1) ? " GENERAL" : "") +
+ (p.isEnabled(2) ? " TREATMENT" : "") +
+ (p.isEnabled(3) ? " TEMPBASAL" : "") +
+ (p.isEnabled(4) ? " PROFILE" : "") +
+ (p.isEnabled(5) ? " APS" : "") +
+ (p.isEnabled(6) ? " PUMP" : "") +
+ (p.isEnabled(7) ? " CONSTRAINTS" : "") +
+ (p.isEnabled(8) ? " LOOP" : "") +
(p.isEnabled(9) ? " BGSOURCE" : "")
);
}
@@ -324,6 +341,16 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
return activePump.isInitialized();
}
+ @Override
+ public boolean isSuspended() {
+ return activePump.isSuspended();
+ }
+
+ @Override
+ public boolean isBusy() {
+ return activePump.isBusy();
+ }
+
@Override
public boolean isTempBasalInProgress() {
return activePump.isTempBasalInProgress();
@@ -362,6 +389,16 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
return activePump.isThisProfileSet(profile);
}
+ @Override
+ public Date lastStatusTime() {
+ return activePump.lastStatusTime();
+ }
+
+ @Override
+ public void updateStatus(String reason) {
+ activePump.updateStatus(reason);
+ }
+
@Override
public double getBaseBasalRate() {
return activePump.getBaseBasalRate();
@@ -404,6 +441,8 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
bolusProgressDialog.show(((AppCompatActivity) context).getSupportFragmentManager(), "BolusProgress");
}
+ MainApp.bus().post(new EventBolusRequested(insulin));
+
PumpEnactResult result = activePump.deliverTreatment(insulin, carbs, context);
BolusProgressDialog.bolusEnded = true;
@@ -423,15 +462,10 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
t.carbs = (double) result.carbsDelivered; // with different carbTime record will come back from nightscout
t.created_at = new Date();
t.mealBolus = result.carbsDelivered > 0;
- try {
- MainApp.getDbHelper().getDaoTreatments().create(t);
- } catch (SQLException e) {
- e.printStackTrace();
- }
+ MainApp.getDbHelper().create(t);
t.setTimeIndex(t.getTimeIndex());
t.carbs = (double) result.carbsDelivered;
uploadBolusWizardRecord(t, glucose, glucoseType, carbTime, boluscalc);
- MainApp.bus().post(new EventTreatmentChange());
}
mWakeLock.release();
return result;
@@ -448,12 +482,20 @@ 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");
+ } 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;
@@ -475,21 +517,15 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
t.carbs = (double) result.carbsDelivered;
t.created_at = new Date();
t.mealBolus = t.carbs > 0;
- try {
- MainApp.getDbHelper().getDaoTreatments().create(t);
- } catch (SQLException e) {
- e.printStackTrace();
- }
+ MainApp.getDbHelper().create(t);
t.setTimeIndex(t.getTimeIndex());
t.sendToNSClient();
- MainApp.bus().post(new EventTreatmentChange());
}
mWakeLock.release();
return result;
}
-
@Override
public void stopBolusDelivering() {
activePump.stopBolusDelivering();
@@ -587,6 +623,17 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
result.comment = MainApp.sResources.getString(R.string.pumpNotInitialized);
result.enacted = false;
result.success = false;
+ log.debug("applyAPSRequest: " + MainApp.sResources.getString(R.string.pumpNotInitialized));
+ return result;
+ }
+
+ if (isSuspended()) {
+ result = new PumpEnactResult();
+ result.comment = MainApp.sResources.getString(R.string.pumpsuspended);
+ result.enacted = false;
+ result.success = false;
+ log.debug("applyAPSRequest: " + MainApp.sResources.getString(R.string.pumpsuspended));
+ return result;
}
if (Config.logCongigBuilderActions)
@@ -647,12 +694,21 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
emptyDescription.isBolusCapable = false;
emptyDescription.isExtendedBolusCapable = false;
emptyDescription.isSetBasalProfileCapable = false;
- emptyDescription.isTempBasalCapable = false;
+ emptyDescription.isTempBasalCapable = true; // needs to be true before real driver is selected
emptyDescription.isRefillingCapable = false;
return emptyDescription;
}
}
+ @Override
+ public String shortStatus(boolean veryShort) {
+ if (activePump != null) {
+ return activePump.shortStatus(veryShort);
+ } else {
+ return "No Pump active!";
+ }
+ }
+
/**
* Constraints interface
**/
@@ -697,7 +753,8 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
@Override
public boolean isAMAModeEnabled() {
- boolean result = true;
+ SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext());
+ boolean result = preferences.getBoolean("openapsama_useautosens", false);
ArrayList constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
for (PluginBase p : constraintsPlugins) {
@@ -770,22 +827,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
@Subscribe
public void onStatusEvent(final EventNewBG ev) {
- Thread t = new Thread(new Runnable() {
- @Override
- public void run() {
- // Give some time to Loop
- try {
- Thread.sleep(120 * 1000L);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- // if status not uploaded, upload pump status only
- if (new Date().getTime() - lastDeviceStatusUpload.getTime() > 120 * 1000L) {
- uploadDeviceStatus();
- }
- }
- });
- t.start();
+ uploadDeviceStatus(120);
}
public void uploadTempBasalStartAbsolute(Double absolute, double durationInMinutes) {
@@ -797,7 +839,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
data.put("absolute", absolute);
data.put("created_at", DateUtil.toISOString(new Date()));
data.put("enteredBy", MainApp.instance().getString(R.string.app_name));
- data.put("notes", MainApp.sResources.getString(R.string.androidaps_tempbasalstartnote) + " " + absolute + "u/h " + durationInMinutes +" min"); // ECOR
+ data.put("notes", MainApp.sResources.getString(R.string.androidaps_tempbasalstartnote) + " " + absolute + "u/h " + durationInMinutes + " min"); // ECOR
Bundle bundle = new Bundle();
bundle.putString("action", "dbAdd");
bundle.putString("collection", "treatments");
@@ -827,7 +869,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
data.put("percent", percent - 100);
data.put("created_at", DateUtil.toISOString(new Date()));
data.put("enteredBy", MainApp.instance().getString(R.string.app_name));
- data.put("notes", MainApp.sResources.getString(R.string.androidaps_tempbasalstartnote) + " " + percent + "% " + durationInMinutes +" min"); // ECOR
+ data.put("notes", MainApp.sResources.getString(R.string.androidaps_tempbasalstartnote) + " " + percent + "% " + durationInMinutes + " min"); // ECOR
Bundle bundle = new Bundle();
bundle.putString("action", "dbAdd");
bundle.putString("collection", "treatments");
@@ -891,18 +933,24 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
}
}
- public void uploadDeviceStatus() {
+ public void doUploadDeviceStatus() {
DeviceStatus deviceStatus = new DeviceStatus();
try {
LoopPlugin.LastRun lastRun = LoopPlugin.lastRun;
- if (lastRun != null && lastRun.lastAPSRun.getTime() > new Date().getTime() - 60 * 1000L) {
+ if (lastRun != null && lastRun.lastAPSRun.getTime() > new Date().getTime() - 300 * 1000L) {
// do not send if result is older than 1 min
APSResult apsResult = lastRun.request;
apsResult.json().put("timestamp", DateUtil.toISOString(lastRun.lastAPSRun));
deviceStatus.suggested = apsResult.json();
- if (lastRun.request instanceof DetermineBasalResult) {
- DetermineBasalResult result = (DetermineBasalResult) lastRun.request;
+ if (lastRun.request instanceof DetermineBasalResultMA) {
+ DetermineBasalResultMA result = (DetermineBasalResultMA) lastRun.request;
+ deviceStatus.iob = result.iob.json();
+ deviceStatus.iob.put("time", DateUtil.toISOString(lastRun.lastAPSRun));
+ }
+
+ if (lastRun.request instanceof DetermineBasalResultAMA) {
+ DetermineBasalResultAMA result = (DetermineBasalResultAMA) lastRun.request;
deviceStatus.iob = result.iob.json();
deviceStatus.iob.put("time", DateUtil.toISOString(lastRun.lastAPSRun));
}
@@ -921,18 +969,36 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
}
if (activePump != null) {
deviceStatus.device = "openaps://" + deviceID();
- deviceStatus.pump = getJSONStatus();
+ JSONObject pumpstatus = getJSONStatus();
+ if (pumpstatus != null) {
+ deviceStatus.pump = getJSONStatus();
+ }
deviceStatus.created_at = DateUtil.toISOString(new Date());
deviceStatus.sendToNSClient();
- lastDeviceStatusUpload = new Date();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
+ 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 {
@@ -974,7 +1040,25 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain
intent.putExtras(bundle);
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
context.sendBroadcast(intent);
- DbLogger.dbAdd(intent, data.toString(), NewExtendedBolusDialog.class);
+ DbLogger.dbAdd(intent, data.toString(), ConfigBuilderPlugin.class);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ public static void removeCareportalEntryFromNS(String _id) {
+ try {
+ Context context = MainApp.instance().getApplicationContext();
+ Bundle bundle = new Bundle();
+ bundle.putString("action", "dbRemove");
+ bundle.putString("collection", "treatments");
+ bundle.putString("_id", _id);
+ Intent intent = new Intent(Intents.ACTION_DATABASE);
+ intent.putExtras(bundle);
+ intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
+ context.sendBroadcast(intent);
+ DbLogger.dbRemove(intent, _id, ConfigBuilderPlugin.class);
} catch (Exception e) {
e.printStackTrace();
}
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 b7fae2a125..7c59790e35 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
@@ -29,6 +29,7 @@ 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;
@@ -63,8 +64,11 @@ public class DanaRFragment extends Fragment implements FragmentBase {
TextView batteryView;
TextView reservoirView;
TextView iobView;
+ TextView firmwareView;
Button viewProfileButton;
Button historyButton;
+ Button statsButton;
+
public DanaRFragment() {
if (sHandlerThread == null) {
@@ -103,8 +107,11 @@ public class DanaRFragment extends Fragment implements FragmentBase {
batteryView = (TextView) view.findViewById(R.id.danar_battery);
reservoirView = (TextView) view.findViewById(R.id.danar_reservoir);
iobView = (TextView) view.findViewById(R.id.danar_iob);
+ firmwareView = (TextView) view.findViewById(R.id.danar_firmware);
viewProfileButton = (Button) view.findViewById(R.id.danar_viewprofile);
historyButton = (Button) view.findViewById(R.id.danar_history);
+ statsButton = (Button) view.findViewById(R.id.danar_stats);
+
viewProfileButton.setOnClickListener(new View.OnClickListener() {
@Override
@@ -122,6 +129,13 @@ public class DanaRFragment extends Fragment implements FragmentBase {
}
});
+ statsButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ startActivity(new Intent(getContext(), DanaRStatsActivity.class));
+ }
+ });
+
btConnectionView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -194,24 +208,24 @@ public class DanaRFragment extends Fragment implements FragmentBase {
@SuppressLint("SetTextI18n")
@Override
public void run() {
-
- if (DanaRPlugin.getDanaRPump().lastConnection.getTime() != 0) {
- Long agoMsec = new Date().getTime() - DanaRPlugin.getDanaRPump().lastConnection.getTime();
+ DanaRPump pump = DanaRPlugin.getDanaRPump();
+ if (pump.lastConnection.getTime() != 0) {
+ Long agoMsec = new Date().getTime() - pump.lastConnection.getTime();
int agoMin = (int) (agoMsec / 60d / 1000d);
- lastConnectionView.setText(DateUtil.timeString(DanaRPlugin.getDanaRPump().lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")");
+ lastConnectionView.setText(DateUtil.timeString(pump.lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")");
SetWarnColor.setColor(lastConnectionView, agoMin, 16d, 31d);
}
- if (DanaRPlugin.getDanaRPump().lastBolusTime.getTime() != 0) {
- Long agoMsec = new Date().getTime() - DanaRPlugin.getDanaRPump().lastBolusTime.getTime();
+ if (pump.lastBolusTime.getTime() != 0) {
+ Long agoMsec = new Date().getTime() - pump.lastBolusTime.getTime();
double agoHours = agoMsec / 60d / 60d / 1000d;
if (agoHours < 6) // max 6h back
- lastBolusView.setText(DateUtil.timeString(DanaRPlugin.getDanaRPump().lastBolusTime) + " (" + DecimalFormatter.to1Decimal(agoHours) + " " + getString(R.string.hoursago) + ") " + DecimalFormatter.to2Decimal(getPlugin().getDanaRPump().lastBolusAmount) + " U");
+ lastBolusView.setText(DateUtil.timeString(pump.lastBolusTime) + " (" + DecimalFormatter.to1Decimal(agoHours) + " " + MainApp.sResources.getString(R.string.hoursago) + ") " + DecimalFormatter.to2Decimal(getPlugin().getDanaRPump().lastBolusAmount) + " U");
else lastBolusView.setText("");
}
- dailyUnitsView.setText(DecimalFormatter.to0Decimal(DanaRPlugin.getDanaRPump().dailyTotalUnits) + " / " + DanaRPlugin.getDanaRPump().maxDailyTotalUnits + " U");
- SetWarnColor.setColor(dailyUnitsView, DanaRPlugin.getDanaRPump().dailyTotalUnits, DanaRPlugin.getDanaRPump().maxDailyTotalUnits * 0.75d, DanaRPlugin.getDanaRPump().maxDailyTotalUnits * 0.9d);
- basaBasalRateView.setText("( " + (DanaRPlugin.getDanaRPump().activeProfile + 1) + " ) " + DecimalFormatter.to2Decimal(getPlugin().getBaseBasalRate()) + " U/h");
+ dailyUnitsView.setText(DecimalFormatter.to0Decimal(pump.dailyTotalUnits) + " / " + pump.maxDailyTotalUnits + " U");
+ SetWarnColor.setColor(dailyUnitsView, pump.dailyTotalUnits, pump.maxDailyTotalUnits * 0.75d, pump.maxDailyTotalUnits * 0.9d);
+ basaBasalRateView.setText("( " + (pump.activeProfile + 1) + " ) " + DecimalFormatter.to2Decimal(getPlugin().getBaseBasalRate()) + " U/h");
if (getPlugin().isRealTempBasalInProgress()) {
tempBasalView.setText(getPlugin().getRealTempBasal().toString());
} else {
@@ -222,11 +236,16 @@ public class DanaRFragment extends Fragment implements FragmentBase {
} else {
extendedBolusView.setText("");
}
- reservoirView.setText(DecimalFormatter.to0Decimal(DanaRPlugin.getDanaRPump().reservoirRemainingUnits) + " / 300 U");
- SetWarnColor.setColorInverse(reservoirView, DanaRPlugin.getDanaRPump().reservoirRemainingUnits, 50d, 20d);
- batteryView.setText("{fa-battery-" + (DanaRPlugin.getDanaRPump().batteryRemaining / 25) + "}");
- SetWarnColor.setColorInverse(batteryView, DanaRPlugin.getDanaRPump().batteryRemaining, 51d, 26d);
- iobView.setText(DanaRPlugin.getDanaRPump().iob + " U");
+ reservoirView.setText(DecimalFormatter.to0Decimal(pump.reservoirRemainingUnits) + " / 300 U");
+ SetWarnColor.setColorInverse(reservoirView, pump.reservoirRemainingUnits, 50d, 20d);
+ batteryView.setText("{fa-battery-" + (pump.batteryRemaining / 25) + "}");
+ SetWarnColor.setColorInverse(batteryView, pump.batteryRemaining, 51d, 26d);
+ iobView.setText(pump.iob + " U");
+ if (pump.isNewPump) {
+ firmwareView.setText(String.format(MainApp.sResources.getString(R.string.danar_model), pump.model, pump.protocol, pump.productCode));
+ } else {
+ firmwareView.setText("OLD");
+ }
}
});
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 72a7a74248..7889471d6b 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
@@ -66,7 +66,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf
private static DanaRPump sDanaRPump = new DanaRPump();
private static boolean useExtendedBoluses = false;
- private static PumpDescription pumpDescription = new PumpDescription();
+ public static PumpDescription pumpDescription = new PumpDescription();
public static DanaRPump getDanaRPump() {
return sDanaRPump;
@@ -85,7 +85,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf
pumpDescription.bolusStep = 0.05d;
pumpDescription.isExtendedBolusCapable = true;
- pumpDescription.extendedBolusStep = 0.1d;
+ pumpDescription.extendedBolusStep = 0.05d;
pumpDescription.isTempBasalCapable = true;
pumpDescription.lowTempBasalStyle = PumpDescription.PERCENT;
@@ -154,6 +154,17 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf
return MainApp.instance().getString(R.string.danarpump);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.danarpump_shortname);
+ if (!name.trim().isEmpty()){
+ //only if translation exists
+ return name;
+ }
+ // use long name as fallback
+ return getName();
+ }
+
@Override
public boolean isEnabled(int type) {
if (type == PluginBase.PROFILE) return fragmentProfileEnabled && fragmentPumpEnabled;
@@ -200,6 +211,17 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf
return getDanaRPump().lastConnection.getTime() > 0 && getDanaRPump().isExtendedBolusEnabled;
}
+ @Override
+ public boolean isSuspended() {
+ return getDanaRPump().pumpSuspended;
+ }
+
+ @Override
+ public boolean isBusy() {
+ if (sExecutionService == null) return false;
+ return sExecutionService.isConnected() || sExecutionService.isConnecting();
+ }
+
// Pump interface
@Override
public boolean isTempBasalInProgress() {
@@ -247,12 +269,14 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf
if (!isInitialized())
return true; // TODO: not sure what's better. so far TRUE to prevent too many SMS
DanaRPump pump = getDanaRPump();
+ if (pump.pumpProfiles == null)
+ return true; // TODO: not sure what's better. so far TRUE to prevent too many SMS
int basalValues = pump.basal48Enable ? 48 : 24;
int basalIncrement = pump.basal48Enable ? 30 * 60 : 60 * 60;
for (int h = 0; h < basalValues; h++) {
Double pumpValue = pump.pumpProfiles[pump.activeProfile][h];
Double profileValue = profile.getBasal(h * basalIncrement);
- if (!pumpValue.equals(profileValue)) {
+ if (Math.abs(pumpValue - profileValue) > getPumpDescription().basalStep) {
log.debug("Diff found. Hour: " + h + " Pump: " + pumpValue + " Profile: " + profileValue);
return false;
}
@@ -260,6 +284,18 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf
return true;
}
+ @Override
+ public Date lastStatusTime() {
+ return getDanaRPump().lastConnection;
+ }
+
+ @Override
+ public void updateStatus(String reason) {
+ if (!isConnected() && !isConnecting()) {
+ doConnect(reason);
+ }
+ }
+
@Override
public double getBaseBasalRate() {
return getDanaRPump().currentBasal;
@@ -267,17 +303,19 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf
@Override
public double getTempBasalAbsoluteRate() {
- if (isRealTempBasalInProgress()) {
- if (getRealTempBasal().isAbsolute) {
- return getRealTempBasal().absolute;
+ TempBasal tb = getRealTempBasal();
+ if (tb != null) {
+ if (tb.isAbsolute) {
+ return tb.absolute;
} else {
Double baseRate = getBaseBasalRate();
- Double tempRate = baseRate * (getRealTempBasal().percent / 100d);
+ Double tempRate = baseRate * (tb.percent / 100d);
return tempRate;
}
}
- if (isExtendedBoluslInProgress() && useExtendedBoluses) {
- return getBaseBasalRate() + getExtendedBolus().absolute;
+ TempBasal eb = getExtendedBolus();
+ if (eb != null && useExtendedBoluses) {
+ return getBaseBasalRate() + eb.absolute;
}
return 0;
}
@@ -469,7 +507,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf
}
// Compare with extended rate in progress
- if (Math.abs(getDanaRPump().extendedBolusAbsoluteRate - extendedRateToSet) < 0.02D) { // Allow some rounding diff
+ if (isExtendedBoluslInProgress() && Math.abs(getDanaRPump().extendedBolusAbsoluteRate - extendedRateToSet) < getPumpDescription().extendedBolusStep) {
// correct extended already set
result.success = true;
result.absolute = getDanaRPump().extendedBolusAbsoluteRate;
@@ -678,17 +716,18 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf
JSONObject extended = new JSONObject();
try {
battery.put("percent", getDanaRPump().batteryRemaining);
- status.put("status", "normal");
+ status.put("status", getDanaRPump().pumpSuspended ? "suspended" : "normal");
status.put("timestamp", DateUtil.toISOString(getDanaRPump().lastConnection));
extended.put("Version", BuildConfig.VERSION_NAME + "-" + BuildConfig.BUILDVERSION);
extended.put("PumpIOB", getDanaRPump().iob);
extended.put("LastBolus", getDanaRPump().lastBolusTime.toLocaleString());
extended.put("LastBolusAmount", getDanaRPump().lastBolusAmount);
- if (isTempBasalInProgress()) {
+ TempBasal tb = getTempBasal();
+ if (tb != null) {
extended.put("TempBasalAbsoluteRate", getTempBasalAbsoluteRate());
- extended.put("TempBasalStart", getTempBasal().timeStart.toLocaleString());
- extended.put("TempBasalRemaining", getTempBasal().getPlannedRemainingMinutes());
- extended.put("IsExtended", getTempBasal().isExtended);
+ extended.put("TempBasalStart", tb.timeStart.toLocaleString());
+ extended.put("TempBasalRemaining", tb.getPlannedRemainingMinutes());
+ extended.put("IsExtended", tb.isExtended);
}
extended.put("BaseBasalRate", getBaseBasalRate());
try {
@@ -800,7 +839,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf
}
// Reply for sms communicator
- public String shortStatus() {
+ public String shortStatus(boolean veryShort) {
String ret = "";
if (getDanaRPump().lastConnection.getTime() != 0) {
Long agoMsec = new Date().getTime() - getDanaRPump().lastConnection.getTime();
@@ -816,6 +855,9 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf
if (isExtendedBoluslInProgress()) {
ret += "Extended: " + getExtendedBolus().toString() + "\n";
}
+ if (!veryShort){
+ ret += "TDD: " + DecimalFormatter.to0Decimal(getDanaRPump().dailyTotalUnits) + " / " + getDanaRPump().maxDailyTotalUnits + " U\n";
+ }
ret += "IOB: " + getDanaRPump().iob + "U\n";
ret += "Reserv: " + DecimalFormatter.to0Decimal(getDanaRPump().reservoirRemainingUnits) + "U\n";
ret += "Batt: " + getDanaRPump().batteryRemaining + "\n";
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 535b80a296..1e9808becd 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
@@ -36,7 +36,7 @@ public class DanaRPump {
public String serialNumber = "";
public Date shippingDate = new Date(0);
public String shippingCountry = "";
- public boolean isNewPump = false;
+ public boolean isNewPump = true;
public int password = -1;
public Date pumpTime = new Date(0);
@@ -124,7 +124,6 @@ public class DanaRPump {
SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext());
double dia = SafeParse.stringToDouble(SP.getString("danarprofile_dia", "3"));
- double car = SafeParse.stringToDouble(SP.getString("danarprofile_car", "20"));
try {
json.put("defaultProfile", PROFILE_PREFIX + (activeProfile + 1));
@@ -139,8 +138,6 @@ public class DanaRPump {
carbratios.put(new JSONObject().put("time", "22:00").put("timeAsSeconds", 22 * 3600).put("value", nightCIR));
profile.put("carbratio", carbratios);
- profile.put("carbs_hr", car);
-
JSONArray sens = new JSONArray();
sens.put(new JSONObject().put("time", "00:00").put("timeAsSeconds", 0).put("value", nightCF));
sens.put(new JSONObject().put("time", "06:00").put("timeAsSeconds", 6 * 3600).put("value", morningCF));
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
new file mode 100644
index 0000000000..674213d66f
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRStatsActivity.java
@@ -0,0 +1,571 @@
+package info.nightscout.androidaps.plugins.DanaR.History;
+
+import android.app.Activity;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.content.SharedPreferences;
+import android.graphics.Color;
+import android.graphics.Rect;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.IBinder;
+import android.preference.PreferenceManager;
+import android.support.v7.widget.LinearLayoutManager;
+import android.text.TextUtils;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.WindowManager;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TableLayout;
+import android.widget.TableRow;
+import android.widget.TextView;
+
+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.text.DateFormat;
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.db.DanaRHistoryRecord;
+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;
+import info.nightscout.utils.ToastUtils;
+
+public class DanaRStatsActivity extends Activity {
+ private static Logger log = LoggerFactory.getLogger(DanaRStatsActivity.class);
+
+ private boolean mBounded;
+ private static ExecutionService mExecutionService;
+
+ private Handler mHandler;
+ private static HandlerThread mHandlerThread;
+
+ TextView statusView, statsMessage,totalBaseBasal2;
+ EditText totalBaseBasal;
+ Button reloadButton;
+ LinearLayoutManager llm;
+ TableLayout tl,ctl,etl;
+ String TBB;
+ double magicNumber;
+ DecimalFormat decimalFormat;
+
+ List historyList = new ArrayList<>();
+
+ public DanaRStatsActivity() {
+ super();
+ mHandlerThread = new HandlerThread(DanaRStatsActivity.class.getSimpleName());
+ mHandlerThread.start();
+ this.mHandler = new Handler(mHandlerThread.getLooper());
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ Intent intent = new Intent(this, ExecutionService.class);
+ bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ MainApp.bus().register(this);
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ MainApp.bus().unregister(this);
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+ if (mBounded) {
+ unbindService(mConnection);
+ mBounded = false;
+ }
+ }
+
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent event) {
+ if (event.getAction() == MotionEvent.ACTION_DOWN) {
+ View myView = getCurrentFocus();
+ if ( myView instanceof EditText) {
+ Rect rect = new Rect();
+ myView.getGlobalVisibleRect(rect);
+ if (!rect.contains((int)event.getRawX(), (int)event.getRawY())) {
+ myView.clearFocus();
+ }
+ }
+ }
+ return super.dispatchTouchEvent( event );
+ }
+
+ ServiceConnection mConnection = new ServiceConnection() {
+
+ public void onServiceDisconnected(ComponentName name) {
+ log.debug("Service is disconnected");
+ mBounded = false;
+ mExecutionService = null;
+ }
+
+ public void onServiceConnected(ComponentName name, IBinder service) {
+ log.debug("Service is connected");
+ mBounded = true;
+ ExecutionService.LocalBinder mLocalBinder = (ExecutionService.LocalBinder) service;
+ mExecutionService = mLocalBinder.getServiceInstance();
+ }
+ };
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.danar_statsactivity);
+ getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
+ statusView = (TextView) findViewById(R.id.danar_stats_connection_status);
+ reloadButton = (Button) findViewById(R.id.danar_statsreload);
+ totalBaseBasal = (EditText) findViewById(R.id.danar_stats_editTotalBaseBasal);
+ totalBaseBasal2 = (TextView) findViewById(R.id.danar_stats_editTotalBaseBasal2);
+ statsMessage = (TextView) findViewById(R.id.danar_stats_Message);
+
+ statusView.setVisibility(View.GONE);
+ statsMessage.setVisibility(View.GONE);
+
+ totalBaseBasal2.setEnabled(false);
+ totalBaseBasal2.setClickable(false);
+ totalBaseBasal2.setFocusable(false);
+ totalBaseBasal2.setInputType(0);
+
+ decimalFormat = new DecimalFormat("0.000");
+ llm = new LinearLayoutManager(this);
+
+ final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
+ TBB = preferences.getString("TBB", "10.00");
+ totalBaseBasal.setText(TBB);
+
+ ProfileInterface pi = ConfigBuilderPlugin.getActiveProfile();
+ 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.commit();
+ TBB = preferences.getString("TBB", "");
+ }
+
+ // stats table
+ tl = (TableLayout) findViewById(R.id.main_table);
+ TableRow tr_head = new TableRow(this);
+ tr_head.setBackgroundColor(Color.DKGRAY);
+ tr_head.setLayoutParams(new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ TableLayout.LayoutParams.WRAP_CONTENT));
+
+ TextView label_date = new TextView(this);
+ label_date.setText(getString(R.string.danar_stats_date));
+ label_date.setTextColor(Color.WHITE);
+ tr_head.addView(label_date);
+
+ TextView label_basalrate = new TextView(this);
+ label_basalrate.setText(getString(R.string.danar_stats_basalrate));
+ label_basalrate.setTextColor(Color.WHITE);
+ tr_head.addView(label_basalrate);
+
+ TextView label_bolus = new TextView(this);
+ label_bolus.setText(getString(R.string.danar_stats_bolus));
+ label_bolus.setTextColor(Color.WHITE);
+ tr_head.addView(label_bolus);
+
+ TextView label_tdd = new TextView(this);
+ label_tdd.setText(getString(R.string.danar_stats_tdd));
+ label_tdd.setTextColor(Color.WHITE);
+ tr_head.addView(label_tdd);
+
+ TextView label_ratio = new TextView(this);
+ label_ratio.setText(getString(R.string.danar_stats_ratio));
+ label_ratio.setTextColor(Color.WHITE);
+ tr_head.addView(label_ratio);
+
+ // add stats headers to tables
+ tl.addView(tr_head, new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ TableLayout.LayoutParams.WRAP_CONTENT));
+
+ // cumulative table
+ ctl = (TableLayout) findViewById(R.id.cumulative_table);
+ TableRow ctr_head = new TableRow(this);
+ ctr_head.setBackgroundColor(Color.DKGRAY);
+ ctr_head.setLayoutParams(new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ TableLayout.LayoutParams.WRAP_CONTENT));
+
+ TextView label_cum_amount_days = new TextView(this);
+ label_cum_amount_days.setText(getString(R.string.danar_stats_amount_days));
+ label_cum_amount_days.setTextColor(Color.WHITE);
+ ctr_head.addView(label_cum_amount_days);
+
+ TextView label_cum_tdd = new TextView(this);
+ label_cum_tdd.setText(getString(R.string.danar_stats_tdd));
+ label_cum_tdd.setTextColor(Color.WHITE);
+ ctr_head.addView(label_cum_tdd);
+
+ TextView label_cum_ratio = new TextView(this);
+ label_cum_ratio.setText(getString(R.string.danar_stats_ratio));
+ label_cum_ratio.setTextColor(Color.WHITE);
+ ctr_head.addView(label_cum_ratio);
+
+ // add cummulative headers to tables
+ ctl.addView(ctr_head, new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ TableLayout.LayoutParams.WRAP_CONTENT));
+
+ // expontial table
+ etl = (TableLayout) findViewById(R.id.expweight_table);
+ TableRow etr_head = new TableRow(this);
+ etr_head.setBackgroundColor(Color.DKGRAY);
+ etr_head.setLayoutParams(new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ TableLayout.LayoutParams.WRAP_CONTENT));
+
+ TextView label_exp_weight = new TextView(this);
+ label_exp_weight.setText(getString(R.string.danar_stats_weight));
+ label_exp_weight.setTextColor(Color.WHITE);
+ etr_head.addView(label_exp_weight);
+
+ TextView label_exp_tdd = new TextView(this);
+ label_exp_tdd.setText(getString(R.string.danar_stats_tdd));
+ label_exp_tdd.setTextColor(Color.WHITE);
+ etr_head.addView(label_exp_tdd);
+
+ TextView label_exp_ratio = new TextView(this);
+ label_exp_ratio.setText(getString(R.string.danar_stats_ratio));
+ label_exp_ratio.setTextColor(Color.WHITE);
+ etr_head.addView(label_exp_ratio);
+
+ // add expontial headers to tables
+ etl.addView(etr_head, new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ TableLayout.LayoutParams.WRAP_CONTENT));
+
+ reloadButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (mExecutionService.isConnected() || mExecutionService.isConnecting()) {
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), getString(R.string.pumpbusy));
+ return;
+ }
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ reloadButton.setVisibility(View.GONE);
+ statusView.setVisibility(View.VISIBLE);
+ statsMessage.setVisibility(View.VISIBLE);
+ statsMessage.setText(getString(R.string.danar_stats_warning_Message));
+ }
+ });
+ mExecutionService.loadHistory(RecordTypes.RECORD_TYPE_DAILY);
+ loadDataFromDB(RecordTypes.RECORD_TYPE_DAILY);
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ reloadButton.setVisibility(View.VISIBLE);
+ statusView.setVisibility(View.GONE);
+ statsMessage.setVisibility(View.GONE);
+ }
+ });
+ }
+ });
+ }
+ });
+
+ totalBaseBasal.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+ @Override
+ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+ if(actionId== EditorInfo.IME_ACTION_DONE){
+ totalBaseBasal.clearFocus();
+ return true;
+ }
+ return false;
+ }
+ });
+
+ totalBaseBasal.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+ @Override
+ public void onFocusChange(View v, boolean hasFocus) {
+ if(hasFocus){
+ totalBaseBasal.getText().clear();
+ } else {
+ SharedPreferences.Editor edit = preferences.edit();
+ edit.putString("TBB",totalBaseBasal.getText().toString());
+ edit.commit();
+ TBB = preferences.getString("TBB", "");
+ loadDataFromDB(RecordTypes.RECORD_TYPE_DAILY);
+ InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(totalBaseBasal.getWindowToken(), 0);
+ }
+ }
+ });
+
+ loadDataFromDB(RecordTypes.RECORD_TYPE_DAILY);
+ }
+
+ private void loadDataFromDB(byte type) {
+ try {
+ Dao dao = MainApp.getDbHelper().getDaoDanaRHistory();
+ QueryBuilder queryBuilder = dao.queryBuilder();
+ queryBuilder.orderBy("recordDate", false);
+ Where where = queryBuilder.where();
+ where.eq("recordCode", type);
+ queryBuilder.limit(10L);
+ PreparedQuery preparedQuery = queryBuilder.prepare();
+ historyList = dao.query(preparedQuery);
+ } catch (SQLException e) {
+ e.printStackTrace();
+ historyList = new ArrayList<>();
+ }
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ cleanTable(tl);
+ cleanTable(ctl);
+ cleanTable(etl);
+ DateFormat df = new SimpleDateFormat("dd.MM.");
+
+ if(TextUtils.isEmpty(TBB)) {
+ totalBaseBasal.setError("Please Enter Total Base Basal");
+ return;
+ }
+ else {
+ magicNumber = SafeParse.stringToDouble(TBB);
+ }
+
+ magicNumber *=2;
+ totalBaseBasal2.setText(decimalFormat.format(magicNumber));
+
+ int i = 0;
+ double sum = 0d;
+ double weighted03 = 0d;
+ double weighted05 = 0d;
+ double weighted07 = 0d;
+
+ 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);
+ 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.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.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBasal()) + " U");
+ labelBASAL.setTextColor(Color.WHITE);
+ tr.addView(labelBASAL);
+
+ TextView labelBOLUS = new TextView(DanaRStatsActivity.this);
+ 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.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.setTextColor(Color.WHITE);
+ tr.addView(labelRATIO);
+
+ // add stats rows to tables
+ tl.addView(tr, new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ TableLayout.LayoutParams.WRAP_CONTENT));
+
+ sum = sum + tdd;
+ i++;
+
+ // Create the cumtable row
+ TableRow ctr = new TableRow(DanaRStatsActivity.this);
+ 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.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.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.setTextColor(Color.WHITE);
+ ctr.addView(labelCUMRATIO);
+
+ // add cummulative rows to tables
+ ctl.addView(ctr, new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ 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))))){
+ statsMessage.setVisibility(View.VISIBLE);
+ statsMessage.setText(getString(R.string.danar_stats_olddata_Message));
+
+ } else {
+ tl.setBackgroundColor(Color.TRANSPARENT);
+ }
+
+ Collections.reverse(historyList);
+
+ 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);
+ }
+ i++;
+ }
+
+ // Create the exptable row
+ TableRow etr = new TableRow(DanaRStatsActivity.this);
+ 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.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.setText(DecimalFormatter.to2Decimal(weighted03)
+ + " U\n" + DecimalFormatter.to2Decimal(weighted05)
+ + " U\n" + DecimalFormatter.to2Decimal(weighted07) + " U");
+ labelEXPTDD.setTextColor(Color.WHITE);
+ 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.setTextColor(Color.WHITE);
+ etr.addView(labelEXPRATIO);
+
+ // add exponentail rows to tables
+ etl.addView(etr, new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ TableLayout.LayoutParams.WRAP_CONTENT));
+ }
+ });
+ }
+
+ private void cleanTable(TableLayout table) {
+ int childCount = table.getChildCount();
+ // Remove all rows except the first one
+ if (childCount > 1) {
+ table.removeViews(1, childCount - 1);
+ }
+ }
+
+ @Subscribe
+ public void onStatusEvent(final EventDanaRSyncStatus s) {
+ log.debug("EventDanaRSyncStatus: " + s.message);
+ runOnUiThread(
+ new Runnable() {
+ @Override
+ public void run() {
+ statusView.setText(s.message);
+ }
+ });
+ }
+
+ @Subscribe
+ public void onStatusEvent(final EventDanaRConnectionStatus 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");
+ }
+ }
+ }
+ );
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/SerialIOThread.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/SerialIOThread.java
index f4fc489d0c..9521c00fcc 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/SerialIOThread.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/SerialIOThread.java
@@ -176,6 +176,10 @@ public class SerialIOThread extends Thread {
}
if (!message.received) {
log.warn("Reply not received " + message.getMessageName());
+ if (message.getCommand() == 0xF0F1) {
+ DanaRPlugin.getDanaRPump().isNewPump = false;
+ log.debug("Old firmware detected");
+ }
}
scheduleDisconnection();
}
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 66acc7292e..e7ecb4c742 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
@@ -26,12 +26,15 @@ import java.util.Set;
import java.util.UUID;
import info.nightscout.androidaps.Config;
+import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
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.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;
@@ -77,6 +80,8 @@ 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;
import info.nightscout.client.data.NSProfile;
import info.nightscout.utils.SafeParse;
import info.nightscout.utils.ToastUtils;
@@ -226,6 +231,9 @@ public class ExecutionService extends Service {
if (!getPumpStatus()) {
mSerialIOThread.disconnect("getPumpStatus failed");
waitMsec(3000);
+ if (!MainApp.getSpecificPlugin(DanaRPlugin.class).isEnabled(PluginBase.PUMP))
+ return;
+ getBTSocketForSelectedPump();
}
}
}
@@ -272,22 +280,25 @@ public class ExecutionService extends Service {
private boolean getPumpStatus() {
try {
+ MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.gettingpumpstatus)));
MsgStatus statusMsg = new MsgStatus();
MsgStatusBasic statusBasicMsg = new MsgStatusBasic();
MsgStatusTempBasal tempStatusMsg = new MsgStatusTempBasal();
MsgStatusBolusExtended exStatusMsg = new MsgStatusBolusExtended();
+ MsgCheckValue checkValue = new MsgCheckValue();
+ if (danaRPump.isNewPump) {
+ mSerialIOThread.sendMessage(checkValue);
+ if (!checkValue.received) {
+ return false;
+ }
+ }
- mSerialIOThread.sendMessage(new MsgSettingShippingInfo()); // TODO: show it somewhere
mSerialIOThread.sendMessage(tempStatusMsg); // do this before statusBasic because here is temp duration
mSerialIOThread.sendMessage(exStatusMsg);
mSerialIOThread.sendMessage(statusMsg);
mSerialIOThread.sendMessage(statusBasicMsg);
- if (danaRPump.isNewPump) {
- mSerialIOThread.sendMessage(new MsgCheckValue());
- }
-
if (!statusMsg.received) {
mSerialIOThread.sendMessage(statusMsg);
}
@@ -330,6 +341,13 @@ public class ExecutionService extends Service {
danaRPump.lastConnection = now;
MainApp.bus().post(new EventDanaRNewStatus());
MainApp.bus().post(new EventInitializationChanged());
+ MainApp.getConfigBuilder().uploadDeviceStatus(60);
+ 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);
+ MainApp.bus().post(new EventNewNotification(reportFail));
+ MainApp.getConfigBuilder().uploadError(MainApp.sResources.getString(R.string.approachingdailylimit) + ": " + danaRPump.dailyTotalUnits + "/" + danaRPump.maxDailyTotalUnits + "U");
+ }
} catch (Exception e) {
e.printStackTrace();
}
@@ -339,30 +357,37 @@ 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)));
mSerialIOThread.sendMessage(new MsgSetTempBasalStart(percent, durationInHours));
mSerialIOThread.sendMessage(new MsgStatusTempBasal());
+ MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.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)));
mSerialIOThread.sendMessage(new MsgSetTempBasalStop());
mSerialIOThread.sendMessage(new MsgStatusTempBasal());
+ MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.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)));
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)));
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)));
mSerialIOThread.sendMessage(new MsgSetExtendedBolusStop());
mSerialIOThread.sendMessage(new MsgStatusBolusExtended());
return true;
@@ -476,6 +501,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)));
double[] basal = buildDanaRProfileRecord(profile);
MsgSetBasalProfile msgSet = new MsgSetBasalProfile((byte) 0, basal);
mSerialIOThread.sendMessage(msgSet);
@@ -483,6 +509,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)));
return true;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgCheckValue.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgCheckValue.java
index 775de6eb29..5e97e2c55e 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgCheckValue.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgCheckValue.java
@@ -24,6 +24,9 @@ public class MsgCheckValue extends MessageBase {
public void handleMessage(byte[] bytes) {
DanaRPump pump = DanaRPlugin.getDanaRPump();
+ DanaRPlugin.getDanaRPump().isNewPump = true;
+ log.debug("New firmware confirmed");
+
pump.model = intFromBuff(bytes, 0, 1);
pump.protocol = intFromBuff(bytes, 1, 1);
pump.productCode = intFromBuff(bytes, 2, 1);
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 86fb0bc9f5..894227e07d 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
@@ -3,6 +3,7 @@ package info.nightscout.androidaps.plugins.DanaR.comm;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import info.nightscout.androidaps.BuildConfig;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.MainApp;
@@ -21,7 +22,7 @@ public class MsgSetExtendedBolusStart extends MessageBase {
if (halfhours > 16) halfhours = 16;
amount = MainApp.getConfigBuilder().applyBolusConstraints(amount);
if (amount < 0d) amount = 0d;
- if (amount > 10d) amount = 10d;
+ if (amount > BuildConfig.MAXBOLUS) amount = BuildConfig.MAXBOLUS;
AddParamInt((int) (amount * 100));
AddParamByte(halfhours);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSettingBasal.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSettingBasal.java
index 77ebfd0021..319fe787f3 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSettingBasal.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSettingBasal.java
@@ -23,7 +23,7 @@ public class MsgSettingBasal extends MessageBase {
pump.pumpProfiles[pump.activeProfile] = new double[24];
for (int index = 0; index < 24; index++) {
int basal = intFromBuff(bytes, 2 * index, 2);
- if (basal < 10) basal = 0;
+ if (basal < DanaRPlugin.pumpDescription.basalMinimumRate) basal = 0;
pump.pumpProfiles[pump.activeProfile][index] = basal / 100d;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSettingShippingInfo.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSettingShippingInfo.java
index 9b71f0060b..faa68c5eb7 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSettingShippingInfo.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSettingShippingInfo.java
@@ -24,10 +24,6 @@ public class MsgSettingShippingInfo extends MessageBase {
pump.serialNumber = stringFromBuff(bytes, 0, 10);
pump.shippingDate = dateFromBuff(bytes, 10);
pump.shippingCountry = asciiStringFromBuff(bytes, 13, 3);
- if (pump.shippingDate.getTime() > new Date(116, 4, 1).getTime()) {
- pump.isNewPump = true;
- } else
- pump.isNewPump = false;
if (Config.logDanaMessageDetail) {
log.debug("Serial number: " + pump.serialNumber);
log.debug("Shipping date: " + pump.shippingDate);
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
index a74529416a..fef8868d2b 100644
--- 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
@@ -4,12 +4,20 @@ 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 907718f636..4142b43ff6 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
@@ -31,6 +31,7 @@ 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;
import info.nightscout.utils.DateUtil;
import info.nightscout.utils.DecimalFormatter;
import info.nightscout.utils.SetWarnColor;
@@ -60,8 +61,11 @@ public class DanaRKoreanFragment extends Fragment implements FragmentBase {
TextView batteryView;
TextView reservoirView;
TextView iobView;
+ TextView firmwareView;
Button viewProfileButton;
Button historyButton;
+ Button statsButton;
+
public DanaRKoreanFragment() {
if (sHandlerThread == null) {
@@ -100,8 +104,11 @@ public class DanaRKoreanFragment extends Fragment implements FragmentBase {
batteryView = (TextView) view.findViewById(R.id.danar_battery);
reservoirView = (TextView) view.findViewById(R.id.danar_reservoir);
iobView = (TextView) view.findViewById(R.id.danar_iob);
+ firmwareView = (TextView) view.findViewById(R.id.danar_firmware);
viewProfileButton = (Button) view.findViewById(R.id.danar_viewprofile);
historyButton = (Button) view.findViewById(R.id.danar_history);
+ statsButton = (Button) view.findViewById(R.id.danar_stats);
+
viewProfileButton.setOnClickListener(new View.OnClickListener() {
@Override
@@ -119,6 +126,13 @@ public class DanaRKoreanFragment extends Fragment implements FragmentBase {
}
});
+ statsButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ startActivity(new Intent(getContext(), DanaRStatsActivity.class));
+ }
+ });
+
btConnectionView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -192,24 +206,24 @@ public class DanaRKoreanFragment extends Fragment implements FragmentBase {
@SuppressLint("SetTextI18n")
@Override
public void run() {
-
- if (DanaRKoreanPlugin.getDanaRPump().lastConnection.getTime() != 0) {
- Long agoMsec = new Date().getTime() - DanaRKoreanPlugin.getDanaRPump().lastConnection.getTime();
+ DanaRKoreanPump pump = DanaRKoreanPlugin.getDanaRPump();
+ if (pump.lastConnection.getTime() != 0) {
+ Long agoMsec = new Date().getTime() - pump.lastConnection.getTime();
int agoMin = (int) (agoMsec / 60d / 1000d);
- lastConnectionView.setText(DateUtil.timeString(DanaRKoreanPlugin.getDanaRPump().lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")");
+ lastConnectionView.setText(DateUtil.timeString(pump.lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")");
SetWarnColor.setColor(lastConnectionView, agoMin, 16d, 31d);
}
-// if (DanaRKoreanPlugin.getDanaRPump().lastBolusTime.getTime() != 0) {
-// Long agoMsec = new Date().getTime() - DanaRKoreanPlugin.getDanaRPump().lastBolusTime.getTime();
+// if (pump.lastBolusTime.getTime() != 0) {
+// Long agoMsec = new Date().getTime() - pump.lastBolusTime.getTime();
// double agoHours = agoMsec / 60d / 60d / 1000d;
// if (agoHours < 6) // max 6h back
-// lastBolusView.setText(formatTime.format(DanaRKoreanPlugin.getDanaRPump().lastBolusTime) + " (" + DecimalFormatter.to1Decimal(agoHours) + " " + getString(R.string.hoursago) + ") " + DecimalFormatter.to2Decimal(danaRKoreanPlugin.getDanaRPump().lastBolusAmount) + " U");
+// lastBolusView.setText(formatTime.format(pump.lastBolusTime) + " (" + DecimalFormatter.to1Decimal(agoHours) + " " + getString(R.string.hoursago) + ") " + DecimalFormatter.to2Decimal(pump.lastBolusAmount) + " U");
// else lastBolusView.setText("");
// }
- dailyUnitsView.setText(DecimalFormatter.to0Decimal(DanaRKoreanPlugin.getDanaRPump().dailyTotalUnits) + " / " + DanaRKoreanPlugin.getDanaRPump().maxDailyTotalUnits + " U");
- SetWarnColor.setColor(dailyUnitsView, DanaRKoreanPlugin.getDanaRPump().dailyTotalUnits, DanaRKoreanPlugin.getDanaRPump().maxDailyTotalUnits * 0.75d, DanaRKoreanPlugin.getDanaRPump().maxDailyTotalUnits * 0.9d);
- basaBasalRateView.setText("( " + (DanaRKoreanPlugin.getDanaRPump().activeProfile + 1) + " ) " + DecimalFormatter.to2Decimal(danaRKoreanPlugin.getBaseBasalRate()) + " U/h");
+ dailyUnitsView.setText(DecimalFormatter.to0Decimal(pump.dailyTotalUnits) + " / " + pump.maxDailyTotalUnits + " U");
+ SetWarnColor.setColor(dailyUnitsView, pump.dailyTotalUnits, pump.maxDailyTotalUnits * 0.75d, pump.maxDailyTotalUnits * 0.9d);
+ basaBasalRateView.setText("( " + (pump.activeProfile + 1) + " ) " + DecimalFormatter.to2Decimal(danaRKoreanPlugin.getBaseBasalRate()) + " U/h");
if (danaRKoreanPlugin.isRealTempBasalInProgress()) {
tempBasalView.setText(danaRKoreanPlugin.getRealTempBasal().toString());
} else {
@@ -220,11 +234,16 @@ public class DanaRKoreanFragment extends Fragment implements FragmentBase {
} else {
extendedBolusView.setText("");
}
- reservoirView.setText(DecimalFormatter.to0Decimal(DanaRKoreanPlugin.getDanaRPump().reservoirRemainingUnits) + " / 300 U");
- SetWarnColor.setColorInverse(reservoirView, DanaRKoreanPlugin.getDanaRPump().reservoirRemainingUnits, 50d, 20d);
- batteryView.setText("{fa-battery-" + (DanaRKoreanPlugin.getDanaRPump().batteryRemaining / 25) + "}");
- SetWarnColor.setColorInverse(batteryView, DanaRKoreanPlugin.getDanaRPump().batteryRemaining, 51d, 26d);
- iobView.setText(DanaRKoreanPlugin.getDanaRPump().iob + " U");
+ reservoirView.setText(DecimalFormatter.to0Decimal(pump.reservoirRemainingUnits) + " / 300 U");
+ SetWarnColor.setColorInverse(reservoirView, pump.reservoirRemainingUnits, 50d, 20d);
+ batteryView.setText("{fa-battery-" + (pump.batteryRemaining / 25) + "}");
+ SetWarnColor.setColorInverse(batteryView, pump.batteryRemaining, 51d, 26d);
+ iobView.setText(pump.iob + " U");
+ if (pump.isNewPump) {
+ firmwareView.setText(String.format(MainApp.sResources.getString(R.string.danar_model), pump.model, pump.protocol, pump.productCode));
+ } else {
+ firmwareView.setText("OLD");
+ }
}
});
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 02fe206197..1384be16e2 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
@@ -66,7 +66,7 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints
private static DanaRKoreanPump sDanaRKoreanPump = new DanaRKoreanPump();
private static boolean useExtendedBoluses = false;
- private PumpDescription pumpDescription = new PumpDescription();
+ public static PumpDescription pumpDescription = new PumpDescription();
public static DanaRKoreanPump getDanaRPump() {
return sDanaRKoreanPump;
@@ -85,7 +85,7 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints
pumpDescription.bolusStep = 0.1d;
pumpDescription.isExtendedBolusCapable = true;
- pumpDescription.extendedBolusStep = 0.1d;
+ pumpDescription.extendedBolusStep = 0.05d;
pumpDescription.isTempBasalCapable = true;
pumpDescription.lowTempBasalStyle = PumpDescription.PERCENT;
@@ -154,6 +154,17 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints
return MainApp.instance().getString(R.string.danarkoreanpump);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.danarpump_shortname);
+ if (!name.trim().isEmpty()){
+ //only if translation exists
+ return name;
+ }
+ // use long name as fallback
+ return getName();
+ }
+
@Override
public boolean isEnabled(int type) {
if (type == PluginBase.PROFILE) return fragmentProfileEnabled && fragmentPumpEnabled;
@@ -200,6 +211,17 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints
return getDanaRPump().lastConnection.getTime() > 0 && !getDanaRPump().isConfigUD && !getDanaRPump().isEasyModeEnabled && getDanaRPump().isExtendedBolusEnabled;
}
+ @Override
+ public boolean isSuspended() {
+ return false;
+ }
+
+ @Override
+ public boolean isBusy() {
+ if (sExecutionService == null) return false;
+ return sExecutionService.isConnected() || sExecutionService.isConnecting();
+ }
+
// Pump interface
@Override
public boolean isTempBasalInProgress() {
@@ -247,6 +269,8 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints
if (!isInitialized())
return true; // TODO: not sure what's better. so far TRUE to prevent too many SMS
DanaRKoreanPump pump = getDanaRPump();
+ if (pump.pumpProfiles == null)
+ return true; // TODO: not sure what's better. so far TRUE to prevent too many SMS
int basalValues = pump.basal48Enable ? 48 : 24;
int basalIncrement = pump.basal48Enable ? 30 * 60 : 60 * 60;
for (int h = 0; h < basalValues; h++) {
@@ -260,6 +284,18 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints
return true;
}
+ @Override
+ public Date lastStatusTime() {
+ return getDanaRPump().lastConnection;
+ }
+
+ @Override
+ public void updateStatus(String reason) {
+ if (!isConnected() && !isConnecting()) {
+ doConnect(reason);
+ }
+ }
+
@Override
public double getBaseBasalRate() {
return getDanaRPump().currentBasal;
@@ -267,17 +303,19 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints
@Override
public double getTempBasalAbsoluteRate() {
- if (isRealTempBasalInProgress()) {
- if (getRealTempBasal().isAbsolute) {
- return getRealTempBasal().absolute;
+ TempBasal tb = getRealTempBasal();
+ if (tb != null) {
+ if (tb.isAbsolute) {
+ return tb.absolute;
} else {
Double baseRate = getBaseBasalRate();
- Double tempRate = baseRate * (getRealTempBasal().percent / 100d);
+ Double tempRate = baseRate * (tb.percent / 100d);
return tempRate;
}
}
- if (isExtendedBoluslInProgress() && useExtendedBoluses) {
- return getBaseBasalRate() + getExtendedBolus().absolute;
+ TempBasal eb = getExtendedBolus();
+ if (eb != null && useExtendedBoluses) {
+ return getBaseBasalRate() + eb.absolute;
}
return 0;
}
@@ -469,7 +507,7 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints
}
// Compare with extended rate in progress
- if (Math.abs(getDanaRPump().extendedBolusAbsoluteRate - extendedRateToSet) < 0.02D) { // Allow some rounding diff
+ if (isExtendedBoluslInProgress() && Math.abs(getDanaRPump().extendedBolusAbsoluteRate - extendedRateToSet) < getPumpDescription().extendedBolusStep) {
// correct extended already set
result.success = true;
result.absolute = getDanaRPump().extendedBolusAbsoluteRate;
@@ -684,11 +722,12 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints
extended.put("PumpIOB", getDanaRPump().iob);
// extended.put("LastBolus", getDanaRPump().lastBolusTime.toLocaleString());
// extended.put("LastBolusAmount", getDanaRPump().lastBolusAmount);
- if (isTempBasalInProgress()) {
+ TempBasal tb = getTempBasal();
+ if (tb != null) {
extended.put("TempBasalAbsoluteRate", getTempBasalAbsoluteRate());
- extended.put("TempBasalStart", getTempBasal().timeStart.toLocaleString());
- extended.put("TempBasalRemaining", getTempBasal().getPlannedRemainingMinutes());
- extended.put("IsExtended", getTempBasal().isExtended);
+ extended.put("TempBasalStart", tb.timeStart.toLocaleString());
+ extended.put("TempBasalRemaining", tb.getPlannedRemainingMinutes());
+ extended.put("IsExtended", tb.isExtended);
}
extended.put("BaseBasalRate", getBaseBasalRate());
try {
@@ -800,7 +839,7 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints
}
// Reply for sms communicator
- public String shortStatus() {
+ public String shortStatus(boolean veryShort) {
String ret = "";
if (getDanaRPump().lastConnection.getTime() != 0) {
Long agoMsec = new Date().getTime() - getDanaRPump().lastConnection.getTime();
@@ -816,6 +855,9 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints
if (isExtendedBoluslInProgress()) {
ret += "Extended: " + getExtendedBolus().toString() + "\n";
}
+ if (!veryShort){
+ ret += "TDD: " + DecimalFormatter.to0Decimal(getDanaRPump().dailyTotalUnits) + " / " + getDanaRPump().maxDailyTotalUnits + " U\n";
+ }
ret += "IOB: " + getDanaRPump().iob + "U\n";
ret += "Reserv: " + DecimalFormatter.to0Decimal(getDanaRPump().reservoirRemainingUnits) + "U\n";
ret += "Batt: " + getDanaRPump().batteryRemaining + "\n";
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 16ac0e2507..b29d9a4347 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
@@ -36,7 +36,7 @@ public class DanaRKoreanPump {
public String serialNumber = "";
public Date shippingDate = new Date(0);
public String shippingCountry = "";
- public boolean isNewPump = false;
+ public boolean isNewPump = true;
public int password = -1;
public Date pumpTime = new Date(0);
@@ -117,7 +117,6 @@ public class DanaRKoreanPump {
SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext());
double dia = SafeParse.stringToDouble(SP.getString("danarprofile_dia", "3"));
- double car = SafeParse.stringToDouble(SP.getString("danarprofile_car", "20"));
try {
json.put("defaultProfile", PROFILE_PREFIX + (activeProfile + 1));
@@ -132,8 +131,6 @@ public class DanaRKoreanPump {
carbratios.put(new JSONObject().put("time", "22:00").put("timeAsSeconds", 22 * 3600).put("value", nightCIR));
profile.put("carbratio", carbratios);
- profile.put("carbs_hr", car);
-
JSONArray sens = new JSONArray();
sens.put(new JSONObject().put("time", "00:00").put("timeAsSeconds", 0).put("value", nightCF));
sens.put(new JSONObject().put("time", "06:00").put("timeAsSeconds", 6 * 3600).put("value", morningCF));
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
new file mode 100644
index 0000000000..d8b5390fbd
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/History/DanaRStatsActivity.java
@@ -0,0 +1,571 @@
+package info.nightscout.androidaps.plugins.DanaRKorean.History;
+
+import android.app.Activity;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.content.SharedPreferences;
+import android.graphics.Color;
+import android.graphics.Rect;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.IBinder;
+import android.preference.PreferenceManager;
+import android.support.v7.widget.LinearLayoutManager;
+import android.text.TextUtils;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.WindowManager;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TableLayout;
+import android.widget.TableRow;
+import android.widget.TextView;
+
+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.text.DateFormat;
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.db.DanaRHistoryRecord;
+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;
+import info.nightscout.utils.SafeParse;
+import info.nightscout.utils.ToastUtils;
+
+public class DanaRStatsActivity extends Activity {
+ private static Logger log = LoggerFactory.getLogger(DanaRStatsActivity.class);
+
+ private boolean mBounded;
+ private static ExecutionService mExecutionService;
+
+ private Handler mHandler;
+ private static HandlerThread mHandlerThread;
+
+ TextView statusView, statsMessage,totalBaseBasal2;
+ EditText totalBaseBasal;
+ Button reloadButton;
+ LinearLayoutManager llm;
+ TableLayout tl,ctl,etl;
+ String TBB;
+ double magicNumber;
+ DecimalFormat decimalFormat;
+
+ List historyList = new ArrayList<>();
+
+ public DanaRStatsActivity() {
+ super();
+ mHandlerThread = new HandlerThread(DanaRStatsActivity.class.getSimpleName());
+ mHandlerThread.start();
+ this.mHandler = new Handler(mHandlerThread.getLooper());
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ Intent intent = new Intent(this, ExecutionService.class);
+ bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ MainApp.bus().register(this);
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ MainApp.bus().unregister(this);
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+ if (mBounded) {
+ unbindService(mConnection);
+ mBounded = false;
+ }
+ }
+
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent event) {
+ if (event.getAction() == MotionEvent.ACTION_DOWN) {
+ View myView = getCurrentFocus();
+ if ( myView instanceof EditText) {
+ Rect rect = new Rect();
+ myView.getGlobalVisibleRect(rect);
+ if (!rect.contains((int)event.getRawX(), (int)event.getRawY())) {
+ myView.clearFocus();
+ }
+ }
+ }
+ return super.dispatchTouchEvent( event );
+ }
+
+ ServiceConnection mConnection = new ServiceConnection() {
+
+ public void onServiceDisconnected(ComponentName name) {
+ log.debug("Service is disconnected");
+ mBounded = false;
+ mExecutionService = null;
+ }
+
+ public void onServiceConnected(ComponentName name, IBinder service) {
+ log.debug("Service is connected");
+ mBounded = true;
+ ExecutionService.LocalBinder mLocalBinder = (ExecutionService.LocalBinder) service;
+ mExecutionService = mLocalBinder.getServiceInstance();
+ }
+ };
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.danar_statsactivity);
+ getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
+ statusView = (TextView) findViewById(R.id.danar_stats_connection_status);
+ reloadButton = (Button) findViewById(R.id.danar_statsreload);
+ totalBaseBasal = (EditText) findViewById(R.id.danar_stats_editTotalBaseBasal);
+ totalBaseBasal2 = (TextView) findViewById(R.id.danar_stats_editTotalBaseBasal2);
+ statsMessage = (TextView) findViewById(R.id.danar_stats_Message);
+
+ statusView.setVisibility(View.GONE);
+ statsMessage.setVisibility(View.GONE);
+
+ totalBaseBasal2.setEnabled(false);
+ totalBaseBasal2.setClickable(false);
+ totalBaseBasal2.setFocusable(false);
+ totalBaseBasal2.setInputType(0);
+
+ decimalFormat = new DecimalFormat("0.000");
+ llm = new LinearLayoutManager(this);
+
+ final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
+ TBB = preferences.getString("TBB", "10.00");
+ totalBaseBasal.setText(TBB);
+
+ ProfileInterface pi = ConfigBuilderPlugin.getActiveProfile();
+ 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.commit();
+ TBB = preferences.getString("TBB", "");
+ }
+
+ // stats table
+ tl = (TableLayout) findViewById(R.id.main_table);
+ TableRow tr_head = new TableRow(this);
+ tr_head.setBackgroundColor(Color.DKGRAY);
+ tr_head.setLayoutParams(new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ TableLayout.LayoutParams.WRAP_CONTENT));
+
+ TextView label_date = new TextView(this);
+ label_date.setText(getString(R.string.danar_stats_date));
+ label_date.setTextColor(Color.WHITE);
+ tr_head.addView(label_date);
+
+ TextView label_basalrate = new TextView(this);
+ label_basalrate.setText(getString(R.string.danar_stats_basalrate));
+ label_basalrate.setTextColor(Color.WHITE);
+ tr_head.addView(label_basalrate);
+
+ TextView label_bolus = new TextView(this);
+ label_bolus.setText(getString(R.string.danar_stats_bolus));
+ label_bolus.setTextColor(Color.WHITE);
+ tr_head.addView(label_bolus);
+
+ TextView label_tdd = new TextView(this);
+ label_tdd.setText(getString(R.string.danar_stats_tdd));
+ label_tdd.setTextColor(Color.WHITE);
+ tr_head.addView(label_tdd);
+
+ TextView label_ratio = new TextView(this);
+ label_ratio.setText(getString(R.string.danar_stats_ratio));
+ label_ratio.setTextColor(Color.WHITE);
+ tr_head.addView(label_ratio);
+
+ // add stats headers to tables
+ tl.addView(tr_head, new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ TableLayout.LayoutParams.WRAP_CONTENT));
+
+ // cumulative table
+ ctl = (TableLayout) findViewById(R.id.cumulative_table);
+ TableRow ctr_head = new TableRow(this);
+ ctr_head.setBackgroundColor(Color.DKGRAY);
+ ctr_head.setLayoutParams(new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ TableLayout.LayoutParams.WRAP_CONTENT));
+
+ TextView label_cum_amount_days = new TextView(this);
+ label_cum_amount_days.setText(getString(R.string.danar_stats_amount_days));
+ label_cum_amount_days.setTextColor(Color.WHITE);
+ ctr_head.addView(label_cum_amount_days);
+
+ TextView label_cum_tdd = new TextView(this);
+ label_cum_tdd.setText(getString(R.string.danar_stats_tdd));
+ label_cum_tdd.setTextColor(Color.WHITE);
+ ctr_head.addView(label_cum_tdd);
+
+ TextView label_cum_ratio = new TextView(this);
+ label_cum_ratio.setText(getString(R.string.danar_stats_ratio));
+ label_cum_ratio.setTextColor(Color.WHITE);
+ ctr_head.addView(label_cum_ratio);
+
+ // add cummulative headers to tables
+ ctl.addView(ctr_head, new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ TableLayout.LayoutParams.WRAP_CONTENT));
+
+ // expontial table
+ etl = (TableLayout) findViewById(R.id.expweight_table);
+ TableRow etr_head = new TableRow(this);
+ etr_head.setBackgroundColor(Color.DKGRAY);
+ etr_head.setLayoutParams(new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ TableLayout.LayoutParams.WRAP_CONTENT));
+
+ TextView label_exp_weight = new TextView(this);
+ label_exp_weight.setText(getString(R.string.danar_stats_weight));
+ label_exp_weight.setTextColor(Color.WHITE);
+ etr_head.addView(label_exp_weight);
+
+ TextView label_exp_tdd = new TextView(this);
+ label_exp_tdd.setText(getString(R.string.danar_stats_tdd));
+ label_exp_tdd.setTextColor(Color.WHITE);
+ etr_head.addView(label_exp_tdd);
+
+ TextView label_exp_ratio = new TextView(this);
+ label_exp_ratio.setText(getString(R.string.danar_stats_ratio));
+ label_exp_ratio.setTextColor(Color.WHITE);
+ etr_head.addView(label_exp_ratio);
+
+ // add expontial headers to tables
+ etl.addView(etr_head, new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ TableLayout.LayoutParams.WRAP_CONTENT));
+
+ reloadButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (mExecutionService.isConnected() || mExecutionService.isConnecting()) {
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), getString(R.string.pumpbusy));
+ return;
+ }
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ reloadButton.setVisibility(View.GONE);
+ statusView.setVisibility(View.VISIBLE);
+ statsMessage.setVisibility(View.VISIBLE);
+ statsMessage.setText(getString(R.string.danar_stats_warning_Message));
+ }
+ });
+ mExecutionService.loadHistory(RecordTypes.RECORD_TYPE_DAILY);
+ loadDataFromDB(RecordTypes.RECORD_TYPE_DAILY);
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ reloadButton.setVisibility(View.VISIBLE);
+ statusView.setVisibility(View.GONE);
+ statsMessage.setVisibility(View.GONE);
+ }
+ });
+ }
+ });
+ }
+ });
+
+ totalBaseBasal.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+ @Override
+ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+ if(actionId== EditorInfo.IME_ACTION_DONE){
+ totalBaseBasal.clearFocus();
+ return true;
+ }
+ return false;
+ }
+ });
+
+ totalBaseBasal.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+ @Override
+ public void onFocusChange(View v, boolean hasFocus) {
+ if(hasFocus){
+ totalBaseBasal.getText().clear();
+ } else {
+ SharedPreferences.Editor edit = preferences.edit();
+ edit.putString("TBB",totalBaseBasal.getText().toString());
+ edit.commit();
+ TBB = preferences.getString("TBB", "");
+ loadDataFromDB(RecordTypes.RECORD_TYPE_DAILY);
+ InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(totalBaseBasal.getWindowToken(), 0);
+ }
+ }
+ });
+
+ loadDataFromDB(RecordTypes.RECORD_TYPE_DAILY);
+ }
+
+ private void loadDataFromDB(byte type) {
+ try {
+ Dao dao = MainApp.getDbHelper().getDaoDanaRHistory();
+ QueryBuilder queryBuilder = dao.queryBuilder();
+ queryBuilder.orderBy("recordDate", false);
+ Where where = queryBuilder.where();
+ where.eq("recordCode", type);
+ queryBuilder.limit(10L);
+ PreparedQuery preparedQuery = queryBuilder.prepare();
+ historyList = dao.query(preparedQuery);
+ } catch (SQLException e) {
+ e.printStackTrace();
+ historyList = new ArrayList<>();
+ }
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ cleanTable(tl);
+ cleanTable(ctl);
+ cleanTable(etl);
+ DateFormat df = new SimpleDateFormat("dd.MM.");
+
+ if(TextUtils.isEmpty(TBB)) {
+ totalBaseBasal.setError("Please Enter Total Base Basal");
+ return;
+ }
+ else {
+ magicNumber = SafeParse.stringToDouble(TBB);
+ }
+
+ magicNumber *=2;
+ totalBaseBasal2.setText(decimalFormat.format(magicNumber));
+
+ int i = 0;
+ double sum = 0d;
+ double weighted03 = 0d;
+ double weighted05 = 0d;
+ double weighted07 = 0d;
+
+ 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);
+ 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.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.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBasal()) + " U");
+ labelBASAL.setTextColor(Color.WHITE);
+ tr.addView(labelBASAL);
+
+ TextView labelBOLUS = new TextView(DanaRStatsActivity.this);
+ 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.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.setTextColor(Color.WHITE);
+ tr.addView(labelRATIO);
+
+ // add stats rows to tables
+ tl.addView(tr, new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ TableLayout.LayoutParams.WRAP_CONTENT));
+
+ sum = sum + tdd;
+ i++;
+
+ // Create the cumtable row
+ TableRow ctr = new TableRow(DanaRStatsActivity.this);
+ 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.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.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.setTextColor(Color.WHITE);
+ ctr.addView(labelCUMRATIO);
+
+ // add cummulative rows to tables
+ ctl.addView(ctr, new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ 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))))){
+ statsMessage.setVisibility(View.VISIBLE);
+ statsMessage.setText(getString(R.string.danar_stats_olddata_Message));
+
+ } else {
+ tl.setBackgroundColor(Color.TRANSPARENT);
+ }
+
+ Collections.reverse(historyList);
+
+ 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);
+ }
+ i++;
+ }
+
+ // Create the exptable row
+ TableRow etr = new TableRow(DanaRStatsActivity.this);
+ 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.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.setText(DecimalFormatter.to2Decimal(weighted03)
+ + " U\n" + DecimalFormatter.to2Decimal(weighted05)
+ + " U\n" + DecimalFormatter.to2Decimal(weighted07) + " U");
+ labelEXPTDD.setTextColor(Color.WHITE);
+ 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.setTextColor(Color.WHITE);
+ etr.addView(labelEXPRATIO);
+
+ // add exponentail rows to tables
+ etl.addView(etr, new TableLayout.LayoutParams(
+ TableLayout.LayoutParams.MATCH_PARENT,
+ TableLayout.LayoutParams.WRAP_CONTENT));
+ }
+ });
+ }
+
+ private void cleanTable(TableLayout table) {
+ int childCount = table.getChildCount();
+ // Remove all rows except the first one
+ if (childCount > 1) {
+ table.removeViews(1, childCount - 1);
+ }
+ }
+
+ @Subscribe
+ public void onStatusEvent(final EventDanaRSyncStatus s) {
+ log.debug("EventDanaRSyncStatus: " + s.message);
+ runOnUiThread(
+ new Runnable() {
+ @Override
+ public void run() {
+ statusView.setText(s.message);
+ }
+ });
+ }
+
+ @Subscribe
+ public void onStatusEvent(final EventDanaRConnectionStatus 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");
+ }
+ }
+ }
+ );
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/SerialIOThread.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/SerialIOThread.java
index ed53de2815..50f9e855ef 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/SerialIOThread.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/SerialIOThread.java
@@ -176,6 +176,10 @@ public class SerialIOThread extends Thread {
}
if (!message.received) {
log.warn("Reply not received " + message.getMessageName());
+ if (message.getCommand() == 0xF0F1) {
+ DanaRKoreanPlugin.getDanaRPump().isNewPump = false;
+ log.debug("Old firmware detected");
+ }
}
scheduleDisconnection();
}
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 29c001cc4c..0bad19b38e 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
@@ -26,12 +26,14 @@ import java.util.Set;
import java.util.UUID;
import info.nightscout.androidaps.Config;
+import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
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.interfaces.PluginBase;
import info.nightscout.androidaps.plugins.DanaR.comm.MessageBase;
import info.nightscout.androidaps.plugins.DanaR.comm.MsgBolusProgress;
import info.nightscout.androidaps.plugins.DanaR.comm.MsgBolusStart;
@@ -73,6 +75,8 @@ 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.Overview.Notification;
+import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
import info.nightscout.client.data.NSProfile;
import info.nightscout.utils.SafeParse;
import info.nightscout.utils.ToastUtils;
@@ -222,6 +226,9 @@ public class ExecutionService extends Service {
if (!getPumpStatus()) {
mSerialIOThread.disconnect("getPumpStatus failed");
waitMsec(3000);
+ if (!MainApp.getSpecificPlugin(DanaRKoreanPlugin.class).isEnabled(PluginBase.PUMP))
+ return;
+ getBTSocketForSelectedPump();
}
}
}
@@ -268,11 +275,19 @@ public class ExecutionService extends Service {
private boolean getPumpStatus() {
try {
+ MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.gettingpumpstatus)));
//MsgStatus statusMsg = new MsgStatus();
MsgStatusBasic statusBasicMsg = new MsgStatusBasic();
MsgStatusTempBasal tempStatusMsg = new MsgStatusTempBasal();
MsgStatusBolusExtended exStatusMsg = new MsgStatusBolusExtended();
+ MsgCheckValue checkValue = new MsgCheckValue();
+ if (danaRKoreanPump.isNewPump) {
+ mSerialIOThread.sendMessage(checkValue);
+ if (!checkValue.received) {
+ return false;
+ }
+ }
mSerialIOThread.sendMessage(new MsgSettingShippingInfo()); // TODO: show it somewhere
mSerialIOThread.sendMessage(tempStatusMsg); // do this before statusBasic because here is temp duration
@@ -280,8 +295,6 @@ public class ExecutionService extends Service {
//mSerialIOThread.sendMessage(statusMsg);
mSerialIOThread.sendMessage(statusBasicMsg);
- mSerialIOThread.sendMessage(new MsgCheckValue());
-
// if (!statusMsg.received) {
// mSerialIOThread.sendMessage(statusMsg);
// }
@@ -321,6 +334,13 @@ public class ExecutionService extends Service {
danaRKoreanPump.lastConnection = now;
MainApp.bus().post(new EventDanaRNewStatus());
MainApp.bus().post(new EventInitializationChanged());
+ MainApp.getConfigBuilder().uploadDeviceStatus(60);
+ 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);
+ MainApp.bus().post(new EventNewNotification(reportFail));
+ MainApp.getConfigBuilder().uploadError(MainApp.sResources.getString(R.string.approachingdailylimit) + ": " + danaRKoreanPump.dailyTotalUnits + "/" + danaRKoreanPump.maxDailyTotalUnits + "U");
+ }
} catch (Exception e) {
e.printStackTrace();
}
@@ -330,32 +350,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)));
mSerialIOThread.sendMessage(new MsgSetTempBasalStart(percent, durationInHours));
mSerialIOThread.sendMessage(new MsgStatusTempBasal());
+ MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.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)));
mSerialIOThread.sendMessage(new MsgSetTempBasalStop());
mSerialIOThread.sendMessage(new MsgStatusTempBasal());
+ MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.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)));
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)));
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)));
mSerialIOThread.sendMessage(new MsgSetExtendedBolusStop());
mSerialIOThread.sendMessage(new MsgStatusBolusExtended());
+ MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting)));
return true;
}
@@ -467,11 +495,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)));
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)));
return true;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgCheckValue.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgCheckValue.java
index 0a9ea6f2aa..efcb32f2ba 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgCheckValue.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgCheckValue.java
@@ -25,6 +25,9 @@ public class MsgCheckValue extends MessageBase {
public void handleMessage(byte[] bytes) {
DanaRKoreanPump pump = DanaRKoreanPlugin.getDanaRPump();
+ DanaRKoreanPlugin.getDanaRPump().isNewPump = true;
+ log.debug("New firmware confirmed");
+
pump.model = intFromBuff(bytes, 0, 1);
pump.protocol = intFromBuff(bytes, 1, 1);
pump.productCode = intFromBuff(bytes, 2, 1);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgSettingBasal.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgSettingBasal.java
index e6ac4b9003..57f63efa5a 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgSettingBasal.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgSettingBasal.java
@@ -24,7 +24,7 @@ public class MsgSettingBasal extends MessageBase {
pump.pumpProfiles[pump.activeProfile] = new double[24];
for (int index = 0; index < 24; index++) {
int basal = intFromBuff(bytes, 2 * index, 2);
- if (basal < 10) basal = 0;
+ if (basal < DanaRKoreanPlugin.pumpDescription.basalMinimumRate) basal = 0;
pump.pumpProfiles[pump.activeProfile][index] = basal / 100d;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgSettingShippingInfo.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgSettingShippingInfo.java
index 4d10aef389..f222d86cbf 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgSettingShippingInfo.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgSettingShippingInfo.java
@@ -25,10 +25,6 @@ public class MsgSettingShippingInfo extends MessageBase {
pump.serialNumber = stringFromBuff(bytes, 0, 10);
pump.shippingDate = dateFromBuff(bytes, 10);
pump.shippingCountry = asciiStringFromBuff(bytes, 13, 3);
- if (pump.shippingDate.getTime() > new Date(116, 4, 1).getTime()) {
- pump.isNewPump = true;
- } else
- pump.isNewPump = false;
if (Config.logDanaMessageDetail) {
log.debug("Serial number: " + pump.serialNumber);
log.debug("Shipping date: " + pump.shippingDate);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfileFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfileFragment.java
index cc891eb98a..552a05cc28 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfileFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfileFragment.java
@@ -45,7 +45,6 @@ public class LocalProfileFragment extends Fragment implements FragmentBase {
RadioButton mmolView;
TimeListEdit icView;
TimeListEdit isfView;
- EditText carView;
TimeListEdit basalView;
TimeListEdit targetView;
Button profileswitchButton;
@@ -66,7 +65,6 @@ public class LocalProfileFragment extends Fragment implements FragmentBase {
mmolView = (RadioButton) layout.findViewById(R.id.localprofile_mmol);
icView = new TimeListEdit(getContext(), layout, R.id.localprofile_ic, MainApp.sResources.getString(R.string.nsprofileview_ic_label), getPlugin().ic, null, new DecimalFormat("0.0"), save);
isfView = new TimeListEdit(getContext(), layout, R.id.localprofile_isf, MainApp.sResources.getString(R.string.nsprofileview_isf_label), getPlugin().isf, null, new DecimalFormat("0.0"), save);
- carView = (EditText) layout.findViewById(R.id.localprofile_car);
basalView = new TimeListEdit(getContext(), layout, R.id.localprofile_basal, MainApp.sResources.getString(R.string.nsprofileview_basal_label), getPlugin().basal, null, new DecimalFormat("0.00"), save);
targetView = new TimeListEdit(getContext(), layout, R.id.localprofile_target, MainApp.sResources.getString(R.string.nsprofileview_target_label), getPlugin().targetLow, getPlugin().targetHigh, new DecimalFormat("0.0"), save);
profileswitchButton = (Button) layout.findViewById(R.id.localprofile_profileswitch);
@@ -81,7 +79,6 @@ public class LocalProfileFragment extends Fragment implements FragmentBase {
mgdlView.setChecked(localProfilePlugin.mgdl);
mmolView.setChecked(localProfilePlugin.mmol);
diaView.setText(localProfilePlugin.dia.toString());
- carView.setText(localProfilePlugin.car.toString());
mgdlView.setOnClickListener(new View.OnClickListener() {
@Override
@@ -106,7 +103,7 @@ public class LocalProfileFragment extends Fragment implements FragmentBase {
@Override
public void onClick(View view) {
NewNSTreatmentDialog newDialog = new NewNSTreatmentDialog();
- final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false);
+ final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false, false);
profileswitch.executeProfileSwitch = true;
newDialog.setOptions(profileswitch);
newDialog.show(getFragmentManager(), "NewNSTreatmentDialog");
@@ -128,13 +125,11 @@ public class LocalProfileFragment extends Fragment implements FragmentBase {
public void onTextChanged(CharSequence s, int start,
int before, int count) {
localProfilePlugin.dia = SafeParse.stringToDouble(diaView.getText().toString());
- localProfilePlugin.car = SafeParse.stringToDouble(carView.getText().toString());
localProfilePlugin.storeSettings();
}
};
diaView.addTextChangedListener(textWatch);
- carView.addTextChangedListener(textWatch);
onStatusEvent(null);
@@ -161,7 +156,7 @@ public class LocalProfileFragment extends Fragment implements FragmentBase {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
- if (!MainApp.getConfigBuilder().isInitialized() || !MainApp.getConfigBuilder().getPumpDescription().isSetBasalProfileCapable) {
+ if (!MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended() || !MainApp.getConfigBuilder().getPumpDescription().isSetBasalProfileCapable) {
profileswitchButton.setVisibility(View.GONE);
} else {
profileswitchButton.setVisibility(View.VISIBLE);
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 0ead686e5e..91c994cdbb 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
@@ -37,7 +37,6 @@ public class LocalProfilePlugin implements PluginBase, ProfileInterface {
Double dia;
JSONArray ic;
JSONArray isf;
- Double car;
JSONArray basal;
JSONArray targetLow;
JSONArray targetHigh;
@@ -61,6 +60,17 @@ public class LocalProfilePlugin implements PluginBase, ProfileInterface {
return MainApp.instance().getString(R.string.localprofile);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.localprofile_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 == PROFILE && fragmentEnabled;
@@ -96,7 +106,6 @@ public class LocalProfilePlugin implements PluginBase, ProfileInterface {
editor.putString("LocalProfile" + "dia", dia.toString());
editor.putString("LocalProfile" + "ic", ic.toString());
editor.putString("LocalProfile" + "isf", isf.toString());
- editor.putString("LocalProfile" + "car", car.toString());
editor.putString("LocalProfile" + "basal", basal.toString());
editor.putString("LocalProfile" + "targetlow", targetLow.toString());
editor.putString("LocalProfile" + "targethigh", targetHigh.toString());
@@ -167,13 +176,6 @@ public class LocalProfilePlugin implements PluginBase, ProfileInterface {
e.printStackTrace();
}
}
- if (settings.contains("LocalProfile" + "car"))
- try {
- car = SafeParse.stringToDouble(settings.getString("LocalProfile" + "car", "20"));
- } catch (Exception e) {
- log.debug(e.getMessage());
- }
- else car = 20d;
if (settings.contains("LocalProfile" + "basal"))
try {
basal = new JSONArray(settings.getString("LocalProfile" + "basal", DEFAULTARRAY));
@@ -279,7 +281,6 @@ public class LocalProfilePlugin implements PluginBase, ProfileInterface {
json.put("store", store);
profile.put("dia", dia);
profile.put("carbratio", ic);
- profile.put("carbs_hr", car);
profile.put("sens", isf);
profile.put("basal", basal);
profile.put("target_low", targetLow);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/APSResult.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/APSResult.java
index 58ab564f6e..69e161524f 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/APSResult.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/APSResult.java
@@ -16,7 +16,7 @@ import info.nightscout.utils.DecimalFormatter;
/**
* Created by mike on 09.06.2016.
*/
-public class APSResult implements Parcelable {
+public class APSResult {
public String reason;
public double rate;
public int duration;
@@ -51,36 +51,6 @@ public class APSResult implements Parcelable {
return Html.fromHtml(MainApp.sResources.getString(R.string.nochangerequested));
}
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- dest.writeString(reason);
- dest.writeDouble(rate);
- dest.writeInt(duration);
- dest.writeInt(changeRequested ? 1 : 0);
- }
-
- public final Parcelable.Creator CREATOR = new Parcelable.Creator() {
- public APSResult createFromParcel(Parcel in) {
- return new APSResult(in);
- }
-
- public APSResult[] newArray(int size) {
- return new APSResult[size];
- }
- };
-
- protected APSResult(Parcel in) {
- reason = in.readString();
- rate = in.readDouble();
- duration = in.readInt();
- changeRequested = in.readInt() == 1;
- }
-
public APSResult() {
}
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 94676f8f3e..a183e28345 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
@@ -76,7 +76,14 @@ public class LoopFragment extends Fragment implements View.OnClickListener, Frag
public void onClick(View view) {
switch (view.getId()) {
case R.id.loop_run:
- getPlugin().invoke(true);
+ lastRunView.setText(MainApp.sResources.getString(R.string.executing));
+ Thread thread = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ getPlugin().invoke("Loop button", true);
+ }
+ });
+ thread.start();
break;
}
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 7c450e9c69..76eb14eb1a 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
@@ -81,6 +81,17 @@ public class LoopPlugin implements PluginBase {
return MainApp.instance().getString(R.string.loop);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.loop_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 == LOOP && fragmentEnabled && MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable;
@@ -108,15 +119,15 @@ public class LoopPlugin implements PluginBase {
@Subscribe
public void onStatusEvent(final EventTreatmentChange ev) {
- invoke(true);
+ invoke("EventTreatmentChange", true);
}
@Subscribe
public void onStatusEvent(final EventNewBG ev) {
- invoke(true);
+ invoke("EventNewBG", true);
}
- public void invoke(boolean allowNotification) {
+ public void invoke(String initiator, boolean allowNotification) {
try {
if (Config.logFunctionCalls)
log.debug("invoke");
@@ -136,7 +147,7 @@ public class LoopPlugin implements PluginBase {
APSInterface usedAPS = configBuilder.getActiveAPS();
if (usedAPS != null && ((PluginBase) usedAPS).isEnabled(PluginBase.APS)) {
- usedAPS.invoke();
+ usedAPS.invoke(initiator);
result = usedAPS.getLastAPSResult();
}
@@ -217,7 +228,7 @@ public class LoopPlugin implements PluginBase {
}
MainApp.bus().post(new EventLoopUpdateGui());
- MainApp.getConfigBuilder().uploadDeviceStatus();
+ MainApp.getConfigBuilder().uploadDeviceStatus(120);
} finally {
if (Config.logFunctionCalls)
log.debug("invoke end");
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 a9b95c25fe..ce48a966de 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
@@ -74,6 +74,12 @@ public class MDIPlugin implements PluginBase, PumpInterface {
return MainApp.instance().getString(R.string.mdi);
}
+ @Override
+ public String getNameShort() {
+ // use long name as fallback (not visible in tabs)
+ return getName();
+ }
+
@Override
public boolean isEnabled(int type) {
return type == PUMP && fragmentEnabled;
@@ -109,6 +115,16 @@ public class MDIPlugin implements PluginBase, PumpInterface {
return true;
}
+ @Override
+ public boolean isSuspended() {
+ return false;
+ }
+
+ @Override
+ public boolean isBusy() {
+ return false;
+ }
+
@Override
public boolean isTempBasalInProgress() {
return false;
@@ -130,6 +146,16 @@ public class MDIPlugin implements PluginBase, PumpInterface {
return false;
}
+ @Override
+ public Date lastStatusTime() {
+ return new Date();
+ }
+
+ @Override
+ public void updateStatus(String reason) {
+ // do nothing
+ }
+
@Override
public double getBaseBasalRate() {
return 0d;
@@ -256,4 +282,9 @@ public class MDIPlugin implements PluginBase, PumpInterface {
return pumpDescription;
}
+ @Override
+ public String shortStatus(boolean veryShort) {
+ return deviceID();
+ }
+
}
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 8e522c3cae..5f5ed9ca1d 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
@@ -49,6 +49,17 @@ public class NSProfilePlugin implements PluginBase, ProfileInterface {
return MainApp.instance().getString(R.string.profileviewer);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.profileviewer_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 == PROFILE && fragmentEnabled;
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 f865165437..030878b6e9 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
@@ -49,6 +49,17 @@ public class ObjectivesPlugin implements PluginBase, ConstraintsInterface {
return MainApp.instance().getString(R.string.objectives);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.objectives_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 == CONSTRAINTS && MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable;
@@ -177,7 +188,7 @@ public class ObjectivesPlugin implements PluginBase, ConstraintsInterface {
MainApp.sResources.getString(R.string.objectives_6_objective),
"",
new Date(0),
- 1,
+ 14,
new Date(0)));
}
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
new file mode 100644
index 0000000000..eb449b96c8
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java
@@ -0,0 +1,242 @@
+package info.nightscout.androidaps.plugins.OpenAPSAMA;
+
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+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.utils.Round;
+import info.nightscout.utils.SafeParse;
+
+
+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);
+
+ double deviationSum = 0;
+ double carbsAbsorbed = 0;
+
+ List bucketed_data = new ArrayList<>();
+ bucketed_data.add(glucose_data.get(0));
+ int j = 0;
+ for (int i = 1; i < glucose_data.size(); ++i) {
+ long bgTime = glucose_data.get(i).getTimeIndex();
+ long lastbgTime = glucose_data.get(i - 1).getTimeIndex();
+ if (glucose_data.get(i).value < 39 || glucose_data.get(i - 1).value < 39) {
+ continue;
+ }
+
+ long elapsed_minutes = (bgTime - lastbgTime) / (60 * 1000);
+ if (Math.abs(elapsed_minutes) > 8) {
+ // interpolate missing data points
+ double lastbg = glucose_data.get(i - 1).value;
+ elapsed_minutes = Math.abs(elapsed_minutes);
+ //console.error(elapsed_minutes);
+ long nextbgTime;
+ while (elapsed_minutes > 5) {
+ nextbgTime = lastbgTime + 5 * 60 * 1000;
+ j++;
+ BgReading newBgreading = new BgReading();
+ newBgreading.timeIndex = nextbgTime;
+ double gapDelta = glucose_data.get(i).value - lastbg;
+ //console.error(gapDelta, lastbg, elapsed_minutes);
+ double nextbg = lastbg + (5 / elapsed_minutes * gapDelta);
+ newBgreading.value = Math.round(nextbg);
+ //console.error("Interpolated", bucketed_data[j]);
+ bucketed_data.add(newBgreading);
+
+ elapsed_minutes = elapsed_minutes - 5;
+ lastbg = nextbg;
+ lastbgTime = nextbgTime;
+ }
+ } 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);
+ } else {
+ bucketed_data.get(j).value = (bucketed_data.get(j).value + glucose_data.get(i).value) / 2;
+ }
+ }
+ //console.error(bucketed_data);
+ double[] avgDeltas = new double[bucketed_data.size() - 2];
+ double[] bgis = new double[bucketed_data.size() - 2];
+ double[] deviations = new double[bucketed_data.size() - 2];
+
+ String pastSensitivity = "";
+ for (int i = 0; i < bucketed_data.size() - 3; ++i) {
+ long bgTime = bucketed_data.get(i).timeIndex;
+ int secondsFromMidnight = NSProfile.secondsFromMidnight(new Date(bgTime));
+
+ double sens = NSProfile.toMgdl(profile.getIsf(secondsFromMidnight), profile.getUnits());
+
+ //console.error(bgTime , bucketed_data[i].glucose);
+ double bg;
+ double avgDelta;
+ double delta;
+ bg = bucketed_data.get(i).value;
+ if (bg < 40 || bucketed_data.get(i + 3).value < 40) {
+ log.error("! value < 40");
+ continue;
+ }
+ avgDelta = (bg - bucketed_data.get(i + 3).value) / 3;
+ delta = (bg - bucketed_data.get(i + 1).value);
+
+// avgDelta = avgDelta.toFixed(2);
+ IobTotal iob = IobTotal.calulateFromTreatmentsAndTemps(bgTime);
+
+ double bgi = Math.round((-iob.activity * sens * 5) * 100) / 100d;
+// bgi = bgi.toFixed(2);
+ //console.error(delta);
+ double deviation = delta - bgi;
+// deviation = deviation.toFixed(2);
+ //if (deviation < 0 && deviation > -2) { console.error("BG: "+bg+", avgDelta: "+avgDelta+", BGI: "+bgi+", deviation: "+deviation); }
+
+ // Exclude large positive deviations (carb absorption) from autosens
+ if (avgDelta - bgi < 6) {
+ if (deviation > 0) {
+ pastSensitivity += "+";
+ } else if (deviation == 0) {
+ pastSensitivity += "=";
+ } else {
+ pastSensitivity += "-";
+ }
+ avgDeltas[i] = avgDelta;
+ bgis[i] = bgi;
+ deviations[i] = deviation;
+ deviationSum += deviation;
+ } else {
+ pastSensitivity += ">";
+ //console.error(bgTime);
+ }
+ //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
+ 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 absorbed = ci * profile.getIc(secondsFromMidnight) / sens;
+ // and add that to the running total carbsAbsorbed
+ carbsAbsorbed += absorbed;
+ }
+ }
+
+ double ratio = 1;
+ String ratioLimit = "";
+ String sensResult = "";
+
+ if (mealTime == null) {
+ //console.error("");
+ log.debug(pastSensitivity);
+ //console.log(JSON.stringify(avgDeltas));
+ //console.log(JSON.stringify(bgis));
+ Arrays.sort(avgDeltas);
+ Arrays.sort(bgis);
+ Arrays.sort(deviations);
+
+ for (double i = 0.9; i > 0.1; i = i - 0.02) {
+ //console.error("p="+i.toFixed(2)+": "+percentile(avgDeltas, i).toFixed(2)+", "+percentile(bgis, i).toFixed(2)+", "+percentile(deviations, i).toFixed(2));
+ if (percentile(deviations, (i + 0.02)) >= 0 && percentile(deviations, i) < 0) {
+ //console.error("p="+i.toFixed(2)+": "+percentile(avgDeltas, i).toFixed(2)+", "+percentile(bgis, i).toFixed(2)+", "+percentile(deviations, i).toFixed(2));
+ log.debug(Math.round(100 * i) + "% of non-meal deviations negative (target 45%-50%)");
+ }
+ }
+ double pSensitive = percentile(deviations, 0.50);
+ double pResistant = percentile(deviations, 0.45);
+ //p30 = percentile(deviations, 0.3);
+
+// average = deviationSum / deviations.length;
+
+ //console.error("Mean deviation: "+average.toFixed(2));
+ double basalOff = 0;
+
+ if (pSensitive < 0) { // sensitive
+ basalOff = pSensitive * (60 / 5) / NSProfile.toMgdl(profile.getIsf(NSProfile.secondsFromMidnight()), profile.getUnits());
+ sensResult = "Excess insulin sensitivity detected";
+ } else if (pResistant > 0) { // resistant
+ basalOff = pResistant * (60 / 5) / NSProfile.toMgdl(profile.getIsf(NSProfile.secondsFromMidnight()), profile.getUnits());
+ sensResult = "Excess insulin resistance detected";
+ } else {
+ sensResult = "Sensitivity normal";
+ }
+ log.debug(sensResult);
+ ratio = 1 + (basalOff / profile.getMaxDailyBasal());
+
+ // don't adjust more than 1.5x
+ double rawRatio = ratio;
+ ratio = Math.max(ratio, SafeParse.stringToDouble(SP.getString("openapsama_autosens_min", "0.7")));
+ ratio = Math.min(ratio, SafeParse.stringToDouble(SP.getString("openapsama_autosens_max", "1.2")));
+
+ if (ratio != rawRatio) {
+ ratioLimit = "Ratio limited from " + rawRatio + " to " + ratio;
+ log.debug(ratioLimit);
+ }
+
+ double newisf = Math.round(NSProfile.toMgdl(profile.getIsf(NSProfile.secondsFromMidnight()), profile.getUnits()) / ratio);
+ if (ratio != 1) {
+ log.debug("ISF adjusted from " + NSProfile.toMgdl(profile.getIsf(NSProfile.secondsFromMidnight()), profile.getUnits()) + " to " + newisf);
+ }
+ //console.error("Basal adjustment "+basalOff.toFixed(2)+"U/hr");
+ //console.error("Ratio: "+ratio*100+"%: new ISF: "+newisf.toFixed(1)+"mg/dL/U");
+ }
+
+ AutosensResult output = new AutosensResult();
+ output.ratio = Round.roundTo(ratio, 0.01);
+ output.carbsAbsorbed = Round.roundTo(carbsAbsorbed, 0.01);
+ output.pastSensitivity = pastSensitivity;
+ output.ratioLimit = ratioLimit;
+ output.sensResult = sensResult;
+ return output;
+ }
+
+ // From https://gist.github.com/IceCreamYou/6ffa1b18c4c8f6aeaad2
+ // Returns the value at a given percentile in a sorted numeric array.
+ // "Linear interpolation between closest ranks" method
+ public static double percentile(double[] arr, double p) {
+ if (arr.length == 0) return 0;
+ if (p <= 0) return arr[0];
+ if (p >= 1) return arr[arr.length - 1];
+
+ double index = arr.length * p,
+ lower = Math.floor(index),
+ upper = lower + 1,
+ weight = index % 1;
+
+ if (upper >= arr.length) return arr[(int) lower];
+ return arr[(int) lower] * (1 - weight) + arr[(int) upper] * weight;
+ }
+
+ // Returns the percentile of the given value in a sorted numeric array.
+ public static double percentRank(double[] arr, double v) {
+ for (int i = 0, l = arr.length; i < l; i++) {
+ if (v <= arr[i]) {
+ while (i < l && v == arr[i]) i++;
+ if (i == 0) return 0;
+ if (v != arr[i - 1]) {
+ i += (v - arr[i - 1]) / (arr[i] - arr[i - 1]);
+ }
+ return i / l;
+ }
+ }
+ return 1;
+ }
+
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/AutosensResult.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/AutosensResult.java
new file mode 100644
index 0000000000..811fee0f39
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/AutosensResult.java
@@ -0,0 +1,32 @@
+package info.nightscout.androidaps.plugins.OpenAPSAMA;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+/**
+ * Created by mike on 06.01.2017.
+ */
+public class AutosensResult {
+
+ //default values to show when autosens algorithm is not called
+ public double ratio = 1d;
+ public double carbsAbsorbed = 0d;
+ public String sensResult = "autosens deactivated";
+ public String pastSensitivity = "";
+ public String ratioLimit = "";
+
+ public JSONObject json() {
+ JSONObject ret = new JSONObject();
+ try {
+ ret.put("ratio", ratio);
+ ret.put("ratioLimit", ratioLimit);
+ ret.put("pastSensitivity", pastSensitivity);
+ ret.put("sensResult", sensResult);
+ ret.put("ratio", ratio);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ return ret;
+ }
+
+}
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
new file mode 100644
index 0000000000..aa6c0ae36d
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalAdapterAMAJS.java
@@ -0,0 +1,294 @@
+package info.nightscout.androidaps.plugins.OpenAPSAMA;
+
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+
+import com.eclipsesource.v8.JavaVoidCallback;
+import com.eclipsesource.v8.V8;
+import com.eclipsesource.v8.V8Array;
+import com.eclipsesource.v8.V8Object;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.slf4j.Logger;
+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.utils.SafeParse;
+
+public class DetermineBasalAdapterAMAJS {
+ private static Logger log = LoggerFactory.getLogger(DetermineBasalAdapterAMAJS.class);
+
+
+ private ScriptReader mScriptReader = null;
+ V8 mV8rt;
+ private V8Object mProfile;
+ private V8Object mGlucoseStatus;
+ private V8Array mIobData;
+ private V8Object mMealData;
+ private V8Object mCurrentTemp;
+ private V8Object mAutosensData = null;
+
+ private final String PARAM_currentTemp = "currentTemp";
+ private final String PARAM_iobData = "iobData";
+ private final String PARAM_glucoseStatus = "glucose_status";
+ private final String PARAM_profile = "profile";
+ private final String PARAM_meal_data = "meal_data";
+ private final String PARAM_autosens_data = "autosens_data";
+
+ private String storedCurrentTemp = null;
+ private String storedIobData = null;
+ private String storedGlucoseStatus = null;
+ private String storedProfile = null;
+ private String storedMeal_data = null;
+ private String storedAutosens_data = null;
+
+ private String scriptDebug = "";
+
+ /**
+ * Main code
+ */
+
+ public DetermineBasalAdapterAMAJS(ScriptReader scriptReader) throws IOException {
+ mV8rt = V8.createV8Runtime();
+ mScriptReader = scriptReader;
+
+ initLogCallback();
+ initProcessExitCallback();
+ initModuleParent();
+ loadScript();
+ }
+
+ public DetermineBasalResultAMA invoke() {
+
+ log.debug(">>> Invoking detemine_basal <<<");
+ log.debug("Glucose status: " + (storedGlucoseStatus = mV8rt.executeStringScript("JSON.stringify(" + PARAM_glucoseStatus + ");")));
+ log.debug("IOB data: " + (storedIobData = mV8rt.executeStringScript("JSON.stringify(" + PARAM_iobData + ");")));
+ log.debug("Current temp: " + (storedCurrentTemp = mV8rt.executeStringScript("JSON.stringify(" + PARAM_currentTemp + ");")));
+ log.debug("Profile: " + (storedProfile = mV8rt.executeStringScript("JSON.stringify(" + PARAM_profile + ");")));
+ log.debug("Meal data: " + (storedMeal_data = mV8rt.executeStringScript("JSON.stringify(" + PARAM_meal_data + ");")));
+ if (mAutosensData != null)
+ log.debug("Autosens data: " + (storedAutosens_data = mV8rt.executeStringScript("JSON.stringify(" + PARAM_autosens_data + ");")));
+ else
+ log.debug("Autosens data: " + (storedAutosens_data = "undefined"));
+
+ mV8rt.executeVoidScript(
+ "var rT = determine_basal(" +
+ PARAM_glucoseStatus + ", " +
+ PARAM_currentTemp + ", " +
+ PARAM_iobData + ", " +
+ PARAM_profile + ", " +
+ PARAM_autosens_data + ", " +
+ PARAM_meal_data + ", " +
+ "tempBasalFunctions" +
+ ");");
+
+
+ String ret = mV8rt.executeStringScript("JSON.stringify(rT);");
+ log.debug("Result: " + ret);
+
+ V8Object v8ObjectReuslt = mV8rt.getObject("rT");
+
+ DetermineBasalResultAMA result = null;
+ try {
+ result = new DetermineBasalResultAMA(v8ObjectReuslt, new JSONObject(ret));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ return result;
+ }
+
+ String getGlucoseStatusParam() {
+ return storedGlucoseStatus;
+ }
+
+ String getCurrentTempParam() {
+ return storedCurrentTemp;
+ }
+
+ String getIobDataParam() {
+ return storedIobData;
+ }
+
+ String getProfileParam() {
+ return storedProfile;
+ }
+
+ String getMealDataParam() {
+ return storedMeal_data;
+ }
+
+ String getAutosensDataParam() {
+ return storedAutosens_data;
+ }
+
+ String getScriptDebug() {
+ return scriptDebug;
+ }
+
+ private void loadScript() throws IOException {
+ mV8rt.executeVoidScript("var round_basal = function round_basal(basal, profile) { return basal; };");
+ mV8rt.executeVoidScript("require = function() {return round_basal;};");
+
+ mV8rt.executeVoidScript(readFile("OpenAPSAMA/basal-set-temp.js"), "OpenAPSAMA/basal-set-temp.js ", 0);
+ mV8rt.executeVoidScript("var tempBasalFunctions = module.exports;");
+
+ mV8rt.executeVoidScript(
+ readFile("OpenAPSAMA/determine-basal.js"),
+ "OpenAPSAMA/determine-basal.js",
+ 0);
+ mV8rt.executeVoidScript("var determine_basal = module.exports;");
+ }
+
+ private void initModuleParent() {
+ mV8rt.executeVoidScript("var module = {\"parent\":Boolean(1)};");
+ }
+
+ private void initProcessExitCallback() {
+ JavaVoidCallback callbackProccessExit = new JavaVoidCallback() {
+ @Override
+ public void invoke(V8Object arg0, V8Array parameters) {
+ if (parameters.length() > 0) {
+ Object arg1 = parameters.get(0);
+ log.error("ProccessExit " + arg1);
+ }
+ }
+ };
+ mV8rt.registerJavaMethod(callbackProccessExit, "proccessExit");
+ mV8rt.executeVoidScript("var process = {\"exit\": function () { proccessExit(); } };");
+ }
+
+ private void initLogCallback() {
+ JavaVoidCallback callbackLog = new JavaVoidCallback() {
+ @Override
+ public void invoke(V8Object arg0, V8Array parameters) {
+ int i = 0;
+ String s = "";
+ while (i < parameters.length()) {
+ Object arg = parameters.get(i);
+ s += arg + " ";
+ i++;
+ }
+ if (!s.equals("") && Config.logAPSResult) {
+ log.debug("Script debug: " + s);
+ scriptDebug += s + "\n";
+ }
+ }
+ };
+ mV8rt.registerJavaMethod(callbackLog, "log");
+ mV8rt.executeVoidScript("var console = {\"log\":log, \"error\":log};");
+ }
+
+
+ public void setData(NSProfile profile,
+ double maxIob,
+ double maxBasal,
+ double minBg,
+ double maxBg,
+ double targetBg,
+ PumpInterface pump,
+ IobTotal[] iobArray,
+ GlucoseStatus glucoseStatus,
+ MealData mealData,
+ double autosensDataRatio,
+ boolean tempTargetSet,
+ double min_5m_carbimpact) {
+
+ String units = profile.getUnits();
+ SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext());
+
+ mProfile = new V8Object(mV8rt);
+ mProfile.add("max_iob", maxIob);
+ mProfile.add("dia", profile.getDia());
+ mProfile.add("type", "current");
+ mProfile.add("max_daily_basal", profile.getMaxDailyBasal());
+ mProfile.add("max_basal", maxBasal);
+ mProfile.add("min_bg", minBg);
+ mProfile.add("max_bg", maxBg);
+ 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_current_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")));
+ mV8rt.add(PARAM_profile, mProfile);
+
+ mCurrentTemp = new V8Object(mV8rt);
+ mCurrentTemp.add("temp", "absolute");
+ mCurrentTemp.add("duration", pump.getTempBasalRemainingMinutes());
+ mCurrentTemp.add("rate", pump.getTempBasalAbsoluteRate());
+
+ // as we have non default temps longer than 30 mintues
+ TempBasal tempBasal = pump.getTempBasal();
+ if(tempBasal != null){
+ mCurrentTemp.add("minutesrunning", tempBasal.getRealDuration());
+ }
+
+ mV8rt.add(PARAM_currentTemp, mCurrentTemp);
+
+ mIobData = mV8rt.executeArrayScript(IobTotal.convertToJSONArray(iobArray).toString());
+ mV8rt.add(PARAM_iobData, mIobData);
+
+ mGlucoseStatus = new V8Object(mV8rt);
+ mGlucoseStatus.add("glucose", glucoseStatus.glucose);
+ mGlucoseStatus.add("delta", glucoseStatus.delta);
+ mGlucoseStatus.add("short_avgdelta", glucoseStatus.short_avgdelta);
+ mGlucoseStatus.add("long_avgdelta", glucoseStatus.long_avgdelta);
+ mV8rt.add(PARAM_glucoseStatus, mGlucoseStatus);
+
+ mMealData = new V8Object(mV8rt);
+ mMealData.add("carbs", mealData.carbs);
+ mMealData.add("boluses", mealData.boluses);
+ mMealData.add("mealCOB", mealData.mealCOB);
+ mV8rt.add(PARAM_meal_data, mMealData);
+
+ if (MainApp.getConfigBuilder().isAMAModeEnabled()) {
+ mAutosensData = new V8Object(mV8rt);
+ mAutosensData.add("ratio", autosensDataRatio);
+ mV8rt.add(PARAM_autosens_data, mAutosensData);
+ } else {
+ mV8rt.addUndefined(PARAM_autosens_data);
+ }
+ }
+
+
+ public void release() {
+ mProfile.release();
+ mCurrentTemp.release();
+ mIobData.release();
+ mMealData.release();
+ mGlucoseStatus.release();
+ if (mAutosensData != null) {
+ mAutosensData.release();
+ }
+ mV8rt.release();
+ }
+
+ public String readFile(String filename) throws IOException {
+ byte[] bytes = mScriptReader.readFile(filename);
+ String string = new String(bytes, "UTF-8");
+ if (string.startsWith("#!/usr/bin/env node")) {
+ string = string.substring(20);
+ }
+ return string;
+ }
+
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalResultAMA.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalResultAMA.java
new file mode 100644
index 0000000000..652ec856bd
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalResultAMA.java
@@ -0,0 +1,159 @@
+package info.nightscout.androidaps.plugins.OpenAPSAMA;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import com.eclipsesource.v8.V8Object;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import info.nightscout.androidaps.db.BgReading;
+import info.nightscout.androidaps.plugins.Loop.APSResult;
+import info.nightscout.androidaps.data.IobTotal;
+
+public class DetermineBasalResultAMA extends APSResult {
+ public Date date;
+ public JSONObject json = new JSONObject();
+ public double eventualBG;
+ public double snoozeBG;
+ public IobTotal iob;
+
+ public DetermineBasalResultAMA(V8Object result, JSONObject j) {
+ date = new Date();
+ json = j;
+ if (result.contains("error")) {
+ reason = result.getString("error");
+ changeRequested = false;
+ rate = -1;
+ duration = -1;
+ } else {
+ reason = result.getString("reason");
+ if (result.contains("eventualBG")) eventualBG = result.getDouble("eventualBG");
+ if (result.contains("snoozeBG")) snoozeBG = result.getDouble("snoozeBG");
+ if (result.contains("rate")) {
+ rate = result.getDouble("rate");
+ if (rate < 0d) rate = 0d;
+ changeRequested = true;
+ } else {
+ rate = -1;
+ changeRequested = false;
+ }
+ if (result.contains("duration")) {
+ duration = result.getInteger("duration");
+ changeRequested = changeRequested;
+ } else {
+ duration = -1;
+ changeRequested = false;
+ }
+ }
+ result.release();
+ }
+
+ public DetermineBasalResultAMA() {
+ }
+
+ @Override
+ public DetermineBasalResultAMA clone() {
+ DetermineBasalResultAMA newResult = new DetermineBasalResultAMA();
+ newResult.reason = new String(reason);
+ newResult.rate = rate;
+ newResult.duration = duration;
+ newResult.changeRequested = changeRequested;
+ newResult.rate = rate;
+ newResult.duration = duration;
+ newResult.changeRequested = changeRequested;
+
+ try {
+ newResult.json = new JSONObject(json.toString());
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ newResult.eventualBG = eventualBG;
+ newResult.snoozeBG = snoozeBG;
+ newResult.date = date;
+ return newResult;
+ }
+
+ @Override
+ public JSONObject json() {
+ try {
+ JSONObject ret = new JSONObject(this.json.toString());
+ return ret;
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public List getPredictions() {
+ List array = new ArrayList<>();
+ try {
+ long startTime = date.getTime();
+ if (json.has("predBGs")) {
+ JSONObject predBGs = json.getJSONObject("predBGs");
+ if (predBGs.has("IOB")) {
+ JSONArray iob = predBGs.getJSONArray("IOB");
+ for (int i = 1; i < iob.length(); i ++) {
+ BgReading bg = new BgReading();
+ bg.value = iob.getInt(i);
+ bg.timeIndex = startTime + i * 5 * 60 * 1000L;
+ array.add(bg);
+ }
+ }
+ if (predBGs.has("aCOB")) {
+ JSONArray iob = predBGs.getJSONArray("aCOB");
+ for (int i = 1; i < iob.length(); i ++) {
+ BgReading bg = new BgReading();
+ bg.value = iob.getInt(i);
+ bg.timeIndex = startTime + i * 5 * 60 * 1000L;
+ array.add(bg);
+ }
+ }
+ if (predBGs.has("COB")) {
+ JSONArray iob = predBGs.getJSONArray("COB");
+ for (int i = 1; i < iob.length(); i ++) {
+ BgReading bg = new BgReading();
+ bg.value = iob.getInt(i);
+ bg.timeIndex = startTime + i * 5 * 60 * 1000L;
+ array.add(bg);
+ }
+ }
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ return array;
+ }
+
+ public long getLatestPredictionsTime() {
+ long latest = 0;
+ try {
+ long startTime = date.getTime();
+ if (json.has("predBGs")) {
+ JSONObject predBGs = json.getJSONObject("predBGs");
+ if (predBGs.has("IOB")) {
+ JSONArray iob = predBGs.getJSONArray("IOB");
+ latest = Math.max(latest, startTime + (iob.length() - 1) * 5 * 60 * 1000L);
+ }
+ if (predBGs.has("aCOB")) {
+ JSONArray iob = predBGs.getJSONArray("aCOB");
+ latest = Math.max(latest, startTime + (iob.length() - 1) * 5 * 60 * 1000L);
+ }
+ if (predBGs.has("COB")) {
+ JSONArray iob = predBGs.getJSONArray("COB");
+ latest = Math.max(latest, startTime + (iob.length() - 1) * 5 * 60 * 1000L);
+ }
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ return latest;
+ }
+}
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
new file mode 100644
index 0000000000..4a8ce51266
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java
@@ -0,0 +1,159 @@
+package info.nightscout.androidaps.plugins.OpenAPSAMA;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import com.squareup.otto.Subscribe;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+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.OpenAPSMA.events.EventOpenAPSUpdateGui;
+import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateResultGui;
+import info.nightscout.utils.JSONFormatter;
+
+public class OpenAPSAMAFragment extends Fragment implements View.OnClickListener, FragmentBase {
+ private static Logger log = LoggerFactory.getLogger(OpenAPSAMAFragment.class);
+
+ private static OpenAPSAMAPlugin openAPSAMAPlugin;
+
+ public static OpenAPSAMAPlugin getPlugin() {
+ if(openAPSAMAPlugin ==null){
+ openAPSAMAPlugin = new OpenAPSAMAPlugin();
+ }
+ return openAPSAMAPlugin;
+ }
+
+ Button run;
+ TextView lastRunView;
+ TextView glucoseStatusView;
+ TextView currentTempView;
+ TextView iobDataView;
+ TextView profileView;
+ TextView mealDataView;
+ TextView autosensDataView;
+ TextView resultView;
+ TextView scriptdebugView;
+ TextView requestView;
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ View view = inflater.inflate(R.layout.openapsama_fragment, container, false);
+
+ run = (Button) view.findViewById(R.id.openapsma_run);
+ run.setOnClickListener(this);
+ lastRunView = (TextView) view.findViewById(R.id.openapsma_lastrun);
+ glucoseStatusView = (TextView) view.findViewById(R.id.openapsma_glucosestatus);
+ currentTempView = (TextView) view.findViewById(R.id.openapsma_currenttemp);
+ iobDataView = (TextView) view.findViewById(R.id.openapsma_iobdata);
+ profileView = (TextView) view.findViewById(R.id.openapsma_profile);
+ mealDataView = (TextView) view.findViewById(R.id.openapsma_mealdata);
+ autosensDataView = (TextView) view.findViewById(R.id.openapsma_autosensdata);
+ scriptdebugView = (TextView) view.findViewById(R.id.openapsma_scriptdebugdata);
+ resultView = (TextView) view.findViewById(R.id.openapsma_result);
+ requestView = (TextView) view.findViewById(R.id.openapsma_request);
+
+ updateGUI();
+ return view;
+ }
+
+ @Override
+ public void onClick(View view) {
+ switch (view.getId()) {
+ case R.id.openapsma_run:
+ getPlugin().invoke("OpenAPSAMA button");
+ break;
+ }
+
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ MainApp.bus().unregister(this);
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ MainApp.bus().register(this);
+ }
+
+ @Subscribe
+ public void onStatusEvent(final EventOpenAPSUpdateGui ev) {
+ updateGUI();
+ }
+
+ @Subscribe
+ public void onStatusEvent(final EventOpenAPSUpdateResultGui ev) {
+ updateResultGUI(ev.text);
+ }
+
+ void updateGUI() {
+ Activity activity = getActivity();
+ if (activity != null)
+ activity.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ DetermineBasalResultAMA lastAPSResult = getPlugin().lastAPSResult;
+ if (lastAPSResult != null) {
+ resultView.setText(JSONFormatter.format(lastAPSResult.json));
+ requestView.setText(lastAPSResult.toSpanned());
+ }
+ DetermineBasalAdapterAMAJS determineBasalAdapterAMAJS = getPlugin().lastDetermineBasalAdapterAMAJS;
+ if (determineBasalAdapterAMAJS != null) {
+ glucoseStatusView.setText(JSONFormatter.format(determineBasalAdapterAMAJS.getGlucoseStatusParam()));
+ currentTempView.setText(JSONFormatter.format(determineBasalAdapterAMAJS.getCurrentTempParam()));
+ try {
+ JSONArray iobArray = new JSONArray(determineBasalAdapterAMAJS.getIobDataParam());
+ iobDataView.setText(String.format(MainApp.sResources.getString(R.string.array_of_elements), iobArray.length()) + "\n" + JSONFormatter.format(iobArray.getString(0)));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ iobDataView.setText("JSONException");
+ }
+ profileView.setText(JSONFormatter.format(determineBasalAdapterAMAJS.getProfileParam()));
+ mealDataView.setText(JSONFormatter.format(determineBasalAdapterAMAJS.getMealDataParam()));
+ scriptdebugView.setText(determineBasalAdapterAMAJS.getScriptDebug());
+ }
+ if (getPlugin().lastAPSRun != null) {
+ lastRunView.setText(getPlugin().lastAPSRun.toLocaleString());
+ }
+ if (getPlugin().lastAutosensResult != null) {
+ autosensDataView.setText(JSONFormatter.format(getPlugin().lastAutosensResult.json()));
+ }
+ }
+ });
+ }
+
+ void updateResultGUI(final String text) {
+ Activity activity = getActivity();
+ if (activity != null)
+ activity.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ resultView.setText(text);
+ glucoseStatusView.setText("");
+ currentTempView.setText("");
+ iobDataView.setText("");
+ profileView.setText("");
+ mealDataView.setText("");
+ autosensDataView.setText("");
+ scriptdebugView.setText("");
+ requestView.setText("");
+ lastRunView.setText("");
+ }
+ });
+ }
+}
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
new file mode 100644
index 0000000000..49d5b760b9
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java
@@ -0,0 +1,293 @@
+package info.nightscout.androidaps.plugins.OpenAPSAMA;
+
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+
+import org.json.JSONException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.util.Date;
+import java.util.List;
+
+import info.nightscout.androidaps.Config;
+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.MealData;
+import info.nightscout.androidaps.db.BgReading;
+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.utils.DateUtil;
+import info.nightscout.utils.Profiler;
+import info.nightscout.utils.Round;
+import info.nightscout.utils.SafeParse;
+import info.nightscout.utils.ToastUtils;
+
+/**
+ * Created by mike on 05.08.2016.
+ */
+public class OpenAPSAMAPlugin implements PluginBase, APSInterface {
+ private static Logger log = LoggerFactory.getLogger(OpenAPSAMAPlugin.class);
+
+ // last values
+ DetermineBasalAdapterAMAJS lastDetermineBasalAdapterAMAJS = null;
+ Date lastAPSRun = null;
+ DetermineBasalResultAMA lastAPSResult = null;
+ AutosensResult lastAutosensResult = null;
+
+ boolean fragmentEnabled = false;
+ boolean fragmentVisible = true;
+
+ @Override
+ public String getName() {
+ return MainApp.instance().getString(R.string.openapsama);
+ }
+
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.oaps_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 == APS && fragmentEnabled && MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable;
+ }
+
+ @Override
+ public boolean isVisibleInTabs(int type) {
+ return type == APS && fragmentVisible && MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable;
+ }
+
+ @Override
+ public boolean canBeHidden(int type) {
+ return true;
+ }
+
+ @Override
+ public void setFragmentVisible(int type, boolean fragmentVisible) {
+ if (type == APS) this.fragmentVisible = fragmentVisible;
+ }
+
+ @Override
+ public void setFragmentEnabled(int type, boolean fragmentEnabled) {
+ if (type == APS) this.fragmentEnabled = fragmentEnabled;
+ }
+
+ @Override
+ public int getType() {
+ return PluginBase.APS;
+ }
+
+ @Override
+ public String getFragmentClass() {
+ return OpenAPSAMAFragment.class.getName();
+ }
+
+ @Override
+ public APSResult getLastAPSResult() {
+ return lastAPSResult;
+ }
+
+ @Override
+ public Date getLastAPSRun() {
+ return lastAPSRun;
+ }
+
+ @Override
+ public void invoke(String initiator) {
+ log.debug("invoke from " + initiator);
+ lastAPSResult = null;
+ DetermineBasalAdapterAMAJS determineBasalAdapterAMAJS = null;
+ try {
+ determineBasalAdapterAMAJS = new DetermineBasalAdapterAMAJS(new ScriptReader(MainApp.instance().getBaseContext()));
+ } catch (IOException e) {
+ log.error(e.getMessage(), e);
+ return;
+ }
+
+ GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData();
+ NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
+ PumpInterface pump = MainApp.getConfigBuilder();
+
+ if (!isEnabled(PluginBase.APS)) {
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_disabled)));
+ if (Config.logAPSResult)
+ log.debug(MainApp.instance().getString(R.string.openapsma_disabled));
+ return;
+ }
+
+ if (glucoseStatus == null) {
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_noglucosedata)));
+ if (Config.logAPSResult)
+ log.debug(MainApp.instance().getString(R.string.openapsma_noglucosedata));
+ return;
+ }
+
+ if (profile == null) {
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_noprofile)));
+ if (Config.logAPSResult)
+ log.debug(MainApp.instance().getString(R.string.openapsma_noprofile));
+ return;
+ }
+
+ if (pump == null) {
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_nopump)));
+ if (Config.logAPSResult)
+ log.debug(MainApp.instance().getString(R.string.openapsma_nopump));
+ 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;
+ if (!units.equals(Constants.MGDL)) {
+ maxBgDefault = Constants.MAX_BG_DEFAULT_MMOL;
+ minBgDefault = Constants.MIN_BG_DEFAULT_MMOL;
+ targetBgDefault = Constants.TARGET_BG_DEFAULT_MMOL;
+ }
+
+ 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);
+
+ minBg = Round.roundTo(minBg, 0.1d);
+ maxBg = Round.roundTo(maxBg, 0.1d);
+
+ Date start = new Date();
+ Date startPart = new Date();
+ IobTotal[] iobArray = IobTotal.calculateIobArrayInDia();
+ Profiler.log(log, "calculateIobArrayInDia()", startPart);
+
+ startPart = new Date();
+ MealData mealData = MainApp.getConfigBuilder().getActiveTreatments().getMealData();
+ Profiler.log(log, "getMealData()", startPart);
+
+ maxIob = MainApp.getConfigBuilder().applyMaxIOBConstraints(maxIob);
+
+ minBg = verifyHardLimits(minBg, "minBg", Constants.VERY_HARD_LIMIT_MIN_BG[0], Constants.VERY_HARD_LIMIT_MIN_BG[1]);
+ maxBg = verifyHardLimits(maxBg, "maxBg", Constants.VERY_HARD_LIMIT_MAX_BG[0], Constants.VERY_HARD_LIMIT_MAX_BG[1]);
+ targetBg = verifyHardLimits(targetBg, "targetBg", Constants.VERY_HARD_LIMIT_TARGET_BG[0], Constants.VERY_HARD_LIMIT_TARGET_BG[1]);
+
+ boolean isTempTarget = false;
+ TempTargetRangePlugin tempTargetRangePlugin = (TempTargetRangePlugin) MainApp.getSpecificPlugin(TempTargetRangePlugin.class);
+ if (tempTargetRangePlugin != null && tempTargetRangePlugin.isEnabled(PluginBase.GENERAL)) {
+ TempTarget tempTarget = tempTargetRangePlugin.getTempTargetInProgress(new Date().getTime());
+ if (tempTarget != null) {
+ isTempTarget = true;
+ minBg = verifyHardLimits(tempTarget.low, "minBg", Constants.VERY_HARD_LIMIT_TEMP_MIN_BG[0], Constants.VERY_HARD_LIMIT_TEMP_MIN_BG[1]);
+ maxBg = verifyHardLimits(tempTarget.high, "maxBg", Constants.VERY_HARD_LIMIT_TEMP_MAX_BG[0], Constants.VERY_HARD_LIMIT_TEMP_MAX_BG[1]);
+ targetBg = verifyHardLimits((tempTarget.low + tempTarget.high) / 2, "targetBg", Constants.VERY_HARD_LIMIT_TEMP_TARGET_BG[0], Constants.VERY_HARD_LIMIT_TEMP_TARGET_BG[1]);
+ }
+ }
+
+
+ maxIob = verifyHardLimits(maxIob, "maxIob", 0, 7);
+ maxBasal = verifyHardLimits(maxBasal, "max_basal", 0.1, 10);
+
+ if (!checkOnlyHardLimits(profile.getDia(), "dia", 2, 7)) return;
+ if (!checkOnlyHardLimits(profile.getIc(profile.secondsFromMidnight()), "carbratio", 2, 100)) return;
+ if (!checkOnlyHardLimits(NSProfile.toMgdl(profile.getIsf(NSProfile.secondsFromMidnight()).doubleValue(), units), "sens", 2, 900)) return;
+ if (!checkOnlyHardLimits(profile.getMaxDailyBasal(), "max_daily_basal", 0.1, 10)) return;
+ if (!checkOnlyHardLimits(pump.getBaseBasalRate(), "current_basal", 0.01, 5)) return;
+
+ 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);
+ log.debug("Limiting data to oldest available temps: " + new Date(oldestDataAvailable).toString() + " (" + bgReadings.size() + " records)");
+ Profiler.log(log, "getBgreadingsDataFromTime()", startPart);
+
+ startPart = new Date();
+ if(MainApp.getConfigBuilder().isAMAModeEnabled()){
+ lastAutosensResult = Autosens.detectSensitivityandCarbAbsorption(bgReadings, null);
+ } else {
+ lastAutosensResult = new AutosensResult();
+ }
+ Profiler.log(log, "detectSensitivityandCarbAbsorption()", startPart);
+ Profiler.log(log, "AMA data gathering", start);
+
+ start = new Date();
+ determineBasalAdapterAMAJS.setData(profile, maxIob, maxBasal, minBg, maxBg, targetBg, pump, iobArray, glucoseStatus, mealData,
+ lastAutosensResult.ratio, //autosensDataRatio
+ isTempTarget,
+ SafeParse.stringToDouble(SP.getString("openapsama_min_5m_carbimpact", "3.0"))//min_5m_carbimpact
+ );
+
+
+ DetermineBasalResultAMA determineBasalResultAMA = determineBasalAdapterAMAJS.invoke();
+ Profiler.log(log, "AMA calculation", start);
+ // Fix bug determine basal
+ if (determineBasalResultAMA.rate == 0d && determineBasalResultAMA.duration == 0 && !MainApp.getConfigBuilder().isTempBasalInProgress())
+ determineBasalResultAMA.changeRequested = false;
+ // limit requests on openloop mode
+ if (!MainApp.getConfigBuilder().isClosedModeEnabled()) {
+ if (MainApp.getConfigBuilder().isTempBasalInProgress() && Math.abs(determineBasalResultAMA.rate - MainApp.getConfigBuilder().getTempBasalAbsoluteRate()) < 0.1)
+ determineBasalResultAMA.changeRequested = false;
+ if (!MainApp.getConfigBuilder().isTempBasalInProgress() && Math.abs(determineBasalResultAMA.rate - MainApp.getConfigBuilder().getBaseBasalRate()) < 0.1)
+ determineBasalResultAMA.changeRequested = false;
+ }
+
+ determineBasalResultAMA.iob = iobArray[0];
+
+ determineBasalAdapterAMAJS.release();
+
+ try {
+ determineBasalResultAMA.json.put("timestamp", DateUtil.toISOString(now));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ lastDetermineBasalAdapterAMAJS = determineBasalAdapterAMAJS;
+ lastAPSResult = determineBasalResultAMA;
+ lastAPSRun = now;
+ MainApp.bus().post(new EventOpenAPSUpdateGui());
+
+ //deviceStatus.suggested = determineBasalResultAMA.json;
+ }
+
+ // safety checks
+ public static boolean checkOnlyHardLimits(Double value, String valueName, double lowLimit, double highLimit) {
+ return value.equals(verifyHardLimits(value, valueName, lowLimit, highLimit));
+ }
+
+ public static Double verifyHardLimits(Double value, String valueName, double lowLimit, double highLimit) {
+ Double newvalue = value;
+ if (newvalue < lowLimit || newvalue > highLimit) {
+ newvalue = Math.max(newvalue, lowLimit);
+ newvalue = Math.min(newvalue, highLimit);
+ String msg = String.format(MainApp.sResources.getString(R.string.openapsma_valueoutofrange), valueName);
+ msg += ".\n";
+ msg += String.format(MainApp.sResources.getString(R.string.openapsma_valuelimitedto), value, newvalue);
+ log.error(msg);
+ MainApp.getConfigBuilder().uploadError(msg);
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), msg, R.raw.error);
+ }
+ return newvalue;
+ }
+
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalAdapterJS.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalAdapterMAJS.java
similarity index 82%
rename from app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalAdapterJS.java
rename to app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalAdapterMAJS.java
index a695e6a866..75c68cd5cc 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalAdapterJS.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalAdapterMAJS.java
@@ -1,8 +1,5 @@
package info.nightscout.androidaps.plugins.OpenAPSMA;
-import android.os.Parcel;
-import android.os.Parcelable;
-
import com.eclipsesource.v8.JavaVoidCallback;
import com.eclipsesource.v8.V8;
import com.eclipsesource.v8.V8Array;
@@ -16,15 +13,15 @@ import org.slf4j.LoggerFactory;
import java.io.IOException;
import info.nightscout.androidaps.Config;
+import info.nightscout.androidaps.data.GlucoseStatus;
+import info.nightscout.androidaps.data.IobTotal;
+import info.nightscout.androidaps.data.MealData;
import info.nightscout.androidaps.interfaces.PumpInterface;
-import info.nightscout.androidaps.db.DatabaseHelper;
import info.nightscout.androidaps.plugins.Loop.ScriptReader;
-import info.nightscout.androidaps.plugins.Treatments.TreatmentsFragment;
-import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin;
import info.nightscout.client.data.NSProfile;
-public class DetermineBasalAdapterJS implements Parcelable {
- private static Logger log = LoggerFactory.getLogger(DetermineBasalAdapterJS.class);
+public class DetermineBasalAdapterMAJS {
+ private static Logger log = LoggerFactory.getLogger(DetermineBasalAdapterMAJS.class);
private ScriptReader mScriptReader = null;
@@ -47,49 +44,11 @@ public class DetermineBasalAdapterJS implements Parcelable {
private String storedProfile = null;
private String storedMeal_data = null;
- /**
- * Parcelable implementation
- * result string for display only
- **/
- protected DetermineBasalAdapterJS(Parcel in) {
- storedCurrentTemp = in.readString();
- storedIobData = in.readString();
- storedGlucoseStatus = in.readString();
- storedProfile = in.readString();
- storedMeal_data = in.readString();
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- dest.writeString(storedCurrentTemp);
- dest.writeString(storedIobData);
- dest.writeString(storedGlucoseStatus);
- dest.writeString(storedProfile);
- dest.writeString(storedMeal_data);
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- public static final Creator CREATOR = new Creator() {
- @Override
- public DetermineBasalAdapterJS createFromParcel(Parcel in) {
- return new DetermineBasalAdapterJS(in);
- }
-
- @Override
- public DetermineBasalAdapterJS[] newArray(int size) {
- return new DetermineBasalAdapterJS[size];
- }
- };
-
- /**
+ /**
* Main code
*/
- public DetermineBasalAdapterJS(ScriptReader scriptReader) throws IOException {
+ public DetermineBasalAdapterMAJS(ScriptReader scriptReader) throws IOException {
mV8rt = V8.createV8Runtime();
mScriptReader = scriptReader;
@@ -104,7 +63,6 @@ public class DetermineBasalAdapterJS implements Parcelable {
// Profile
mProfile = new V8Object(mV8rt);
mProfile.add("max_iob", 0);
- mProfile.add("carbs_hr", 0);
mProfile.add("dia", 0);
mProfile.add("type", "current");
mProfile.add("max_daily_basal", 0);
@@ -143,7 +101,7 @@ public class DetermineBasalAdapterJS implements Parcelable {
mV8rt.add(PARAM_meal_data, mMealData);
}
- public DetermineBasalResult invoke() {
+ public DetermineBasalResultMA invoke() {
mV8rt.executeVoidScript(
"console.error(\"determine_basal(\"+\n" +
"JSON.stringify(" + PARAM_glucoseStatus + ")+ \", \" +\n" +
@@ -170,14 +128,13 @@ public class DetermineBasalAdapterJS implements Parcelable {
V8Object v8ObjectReuslt = mV8rt.getObject("rT");
- DetermineBasalResult result = null;
+ DetermineBasalResultMA result = null;
try {
- result = new DetermineBasalResult(v8ObjectReuslt, new JSONObject(ret));
+ result = new DetermineBasalResultMA(v8ObjectReuslt, new JSONObject(ret));
} catch (JSONException e) {
e.printStackTrace();
}
- // Store input params for Parcelable
storedGlucoseStatus = mV8rt.executeStringScript("JSON.stringify(" + PARAM_glucoseStatus + ");");
storedIobData = mV8rt.executeStringScript("JSON.stringify(" + PARAM_iobData + ");");
storedCurrentTemp = mV8rt.executeStringScript("JSON.stringify(" + PARAM_currentTemp + ");");
@@ -266,13 +223,12 @@ public class DetermineBasalAdapterJS implements Parcelable {
double targetBg,
PumpInterface pump,
IobTotal iobData,
- DatabaseHelper.GlucoseStatus glucoseStatus,
- TreatmentsPlugin.MealData mealData) {
+ GlucoseStatus glucoseStatus,
+ MealData mealData) {
String units = profile.getUnits();
mProfile.add("max_iob", maxIob);
- mProfile.add("carbs_hr", profile.getCarbAbsorbtionRate());
mProfile.add("dia", profile.getDia());
mProfile.add("type", "current");
mProfile.add("max_daily_basal", profile.getMaxDailyBasal());
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalResult.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalResultMA.java
similarity index 66%
rename from app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalResult.java
rename to app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalResultMA.java
index 9ea8286c7e..cb0e67249f 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalResult.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalResultMA.java
@@ -8,9 +8,10 @@ import com.eclipsesource.v8.V8Object;
import org.json.JSONException;
import org.json.JSONObject;
+import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.plugins.Loop.APSResult;
-public class DetermineBasalResult extends APSResult {
+public class DetermineBasalResultMA extends APSResult {
public JSONObject json = new JSONObject();
public double eventualBG;
@@ -18,7 +19,7 @@ public class DetermineBasalResult extends APSResult {
public String mealAssist;
public IobTotal iob;
- public DetermineBasalResult(V8Object result, JSONObject j) {
+ public DetermineBasalResultMA(V8Object result, JSONObject j) {
json = j;
if (result.contains("error")) {
reason = result.getString("error");
@@ -52,43 +53,12 @@ public class DetermineBasalResult extends APSResult {
result.release();
}
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- super.writeToParcel(dest, flags);
- dest.writeString(json.toString());
- dest.writeDouble(eventualBG);
- dest.writeDouble(snoozeBG);
- dest.writeString(mealAssist);
- }
-
- public final Parcelable.Creator CREATOR = new Parcelable.Creator() {
- public DetermineBasalResult createFromParcel(Parcel in) {
- return new DetermineBasalResult(in);
- }
-
- public DetermineBasalResult[] newArray(int size) {
- return new DetermineBasalResult[size];
- }
- };
-
- private DetermineBasalResult(Parcel in) {
- super(in);
- try {
- json = new JSONObject(in.readString());
- } catch (JSONException e) {
- e.printStackTrace();
- }
- eventualBG = in.readDouble();
- snoozeBG = in.readDouble();
- mealAssist = in.readString();
- }
-
- public DetermineBasalResult() {
+ public DetermineBasalResultMA() {
}
@Override
- public DetermineBasalResult clone() {
- DetermineBasalResult newResult = new DetermineBasalResult();
+ public DetermineBasalResultMA clone() {
+ DetermineBasalResultMA newResult = new DetermineBasalResultMA();
newResult.reason = new String(reason);
newResult.rate = rate;
newResult.duration = duration;
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/IobTotal.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/IobTotal.java
deleted file mode 100644
index ecd4ca1e82..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/IobTotal.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package info.nightscout.androidaps.plugins.OpenAPSMA;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.util.Date;
-
-import info.nightscout.utils.DateUtil;
-import info.nightscout.utils.Round;
-
-public class IobTotal {
- public Double iob;
- public Double activity;
- public Double bolussnooze;
- public Double basaliob;
- public Double netbasalinsulin;
- public Double hightempinsulin;
-
- public Double netInsulin = 0d; // for calculations from temp basals only
- public Double netRatio = 0d; // for calculations from temp basals only
-
- public IobTotal() {
- this.iob = 0d;
- this.activity = 0d;
- this.bolussnooze = 0d;
- this.basaliob = 0d;
- this.netbasalinsulin = 0d;
- this.hightempinsulin = 0d;
- }
-
- public IobTotal plus(IobTotal other) {
- iob += other.iob;
- activity += other.activity;
- bolussnooze += other.bolussnooze;
- basaliob += other.basaliob;
- netbasalinsulin += other.netbasalinsulin;
- hightempinsulin += other.hightempinsulin;
- netInsulin += other.netInsulin;
- netRatio += other.netRatio;
- return this;
- }
-
- public static IobTotal combine(IobTotal bolusIOB, IobTotal basalIob) {
- IobTotal result = new IobTotal();
- result.iob = bolusIOB.iob + basalIob.basaliob;
- result.activity = bolusIOB.activity + basalIob.activity;
- result.bolussnooze = bolusIOB.bolussnooze;
- result.basaliob = basalIob.basaliob;
- result.netbasalinsulin = basalIob.netbasalinsulin;
- result.hightempinsulin = basalIob.hightempinsulin;
- return result;
- }
-
- public IobTotal round() {
- this.iob = Round.roundTo(this.iob, 0.001);
- this.activity = Round.roundTo(this.activity, 0.0001);
- this.bolussnooze = Round.roundTo(this.bolussnooze, 0.0001);
- this.basaliob = Round.roundTo(this.basaliob, 0.001);
- this.netbasalinsulin = Round.roundTo(this.netbasalinsulin, 0.001);
- this.hightempinsulin = Round.roundTo(this.hightempinsulin, 0.001);
- return this;
- }
-
- public JSONObject json() {
- JSONObject json = new JSONObject();
- try {
- json.put("iob", iob);
- json.put("basaliob", basaliob);
- json.put("activity", activity);
- json.put("time", DateUtil.toISOString(new Date()));
- } catch (JSONException e) {
- e.printStackTrace();
- }
- return json;
- }
-}
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 86cd729dcb..8805ba18b7 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
@@ -17,9 +17,8 @@ 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.Loop.APSResult;
-import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSMAUpdateGui;
-import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSMAUpdateResultGui;
+import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateGui;
+import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateResultGui;
import info.nightscout.utils.JSONFormatter;
public class OpenAPSMAFragment extends Fragment implements View.OnClickListener, FragmentBase {
@@ -68,7 +67,7 @@ public class OpenAPSMAFragment extends Fragment implements View.OnClickListener,
public void onClick(View view) {
switch (view.getId()) {
case R.id.openapsma_run:
- getPlugin().invoke();
+ getPlugin().invoke("OpenAPSMA button");
break;
}
@@ -87,12 +86,12 @@ public class OpenAPSMAFragment extends Fragment implements View.OnClickListener,
}
@Subscribe
- public void onStatusEvent(final EventOpenAPSMAUpdateGui ev) {
+ public void onStatusEvent(final EventOpenAPSUpdateGui ev) {
updateGUI();
}
@Subscribe
- public void onStatusEvent(final EventOpenAPSMAUpdateResultGui ev) {
+ public void onStatusEvent(final EventOpenAPSUpdateResultGui ev) {
updateResultGUI(ev.text);
}
@@ -102,18 +101,18 @@ public class OpenAPSMAFragment extends Fragment implements View.OnClickListener,
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
- DetermineBasalResult lastAPSResult = getPlugin().lastAPSResult;
+ DetermineBasalResultMA lastAPSResult = getPlugin().lastAPSResult;
if (lastAPSResult != null) {
resultView.setText(JSONFormatter.format(lastAPSResult.json));
requestView.setText(lastAPSResult.toSpanned());
}
- DetermineBasalAdapterJS determineBasalAdapterJS = getPlugin().lastDetermineBasalAdapterJS;
- if (determineBasalAdapterJS != null) {
- glucoseStatusView.setText(JSONFormatter.format(determineBasalAdapterJS.getGlucoseStatusParam()));
- currentTempView.setText(JSONFormatter.format(determineBasalAdapterJS.getCurrentTempParam()));
- iobDataView.setText(JSONFormatter.format(determineBasalAdapterJS.getIobDataParam()));
- profileView.setText(JSONFormatter.format(determineBasalAdapterJS.getProfileParam()));
- mealDataView.setText(JSONFormatter.format(determineBasalAdapterJS.getMealDataParam()));
+ DetermineBasalAdapterMAJS determineBasalAdapterMAJS = getPlugin().lastDetermineBasalAdapterMAJS;
+ if (determineBasalAdapterMAJS != null) {
+ glucoseStatusView.setText(JSONFormatter.format(determineBasalAdapterMAJS.getGlucoseStatusParam()));
+ currentTempView.setText(JSONFormatter.format(determineBasalAdapterMAJS.getCurrentTempParam()));
+ iobDataView.setText(JSONFormatter.format(determineBasalAdapterMAJS.getIobDataParam()));
+ profileView.setText(JSONFormatter.format(determineBasalAdapterMAJS.getProfileParam()));
+ mealDataView.setText(JSONFormatter.format(determineBasalAdapterMAJS.getMealDataParam()));
}
if (getPlugin().lastAPSRun != null) {
lastRunView.setText(getPlugin().lastAPSRun.toLocaleString());
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 47ef05e08f..a3d5c3c508 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,13 +1,9 @@
package info.nightscout.androidaps.plugins.OpenAPSMA;
-import android.content.Context;
-import android.content.Intent;
import android.content.SharedPreferences;
-import android.os.Bundle;
import android.preference.PreferenceManager;
import org.json.JSONException;
-import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -18,8 +14,10 @@ import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
-import info.nightscout.androidaps.Services.Intents;
-import info.nightscout.androidaps.db.DatabaseHelper;
+import info.nightscout.androidaps.data.GlucoseStatus;
+import info.nightscout.androidaps.data.IobTotal;
+import info.nightscout.androidaps.data.MealData;
+import info.nightscout.androidaps.db.TempTarget;
import info.nightscout.androidaps.interfaces.APSInterface;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PumpInterface;
@@ -27,16 +25,19 @@ 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.OpenAPSMA.events.EventOpenAPSMAUpdateGui;
-import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSMAUpdateResultGui;
-import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin;
-import info.nightscout.client.data.DbLogger;
+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.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;
+
/**
* Created by mike on 05.08.2016.
*/
@@ -44,9 +45,9 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface {
private static Logger log = LoggerFactory.getLogger(OpenAPSMAPlugin.class);
// last values
- DetermineBasalAdapterJS lastDetermineBasalAdapterJS = null;
+ DetermineBasalAdapterMAJS lastDetermineBasalAdapterMAJS = null;
Date lastAPSRun = null;
- DetermineBasalResult lastAPSResult = null;
+ DetermineBasalResultMA lastAPSResult = null;
boolean fragmentEnabled = false;
boolean fragmentVisible = true;
@@ -56,6 +57,17 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface {
return MainApp.instance().getString(R.string.openapsma);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.oaps_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 == APS && fragmentEnabled && MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable;
@@ -102,43 +114,44 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface {
}
@Override
- public void invoke() {
+ public void invoke(String initiator) {
+ log.debug("invoke from " + initiator);
lastAPSResult = null;
- DetermineBasalAdapterJS determineBasalAdapterJS = null;
+ DetermineBasalAdapterMAJS determineBasalAdapterMAJS = null;
try {
- determineBasalAdapterJS = new DetermineBasalAdapterJS(new ScriptReader(MainApp.instance().getBaseContext()));
+ determineBasalAdapterMAJS = new DetermineBasalAdapterMAJS(new ScriptReader(MainApp.instance().getBaseContext()));
} catch (IOException e) {
log.error(e.getMessage(), e);
return;
}
- DatabaseHelper.GlucoseStatus glucoseStatus = MainApp.getDbHelper().getGlucoseStatusData();
+ GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData();
NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
PumpInterface pump = MainApp.getConfigBuilder();
if (!isEnabled(PluginBase.APS)) {
- MainApp.bus().post(new EventOpenAPSMAUpdateResultGui(MainApp.instance().getString(R.string.openapsma_disabled)));
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_disabled)));
if (Config.logAPSResult)
log.debug(MainApp.instance().getString(R.string.openapsma_disabled));
return;
}
if (glucoseStatus == null) {
- MainApp.bus().post(new EventOpenAPSMAUpdateResultGui(MainApp.instance().getString(R.string.openapsma_noglucosedata)));
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_noglucosedata)));
if (Config.logAPSResult)
log.debug(MainApp.instance().getString(R.string.openapsma_noglucosedata));
return;
}
if (profile == null) {
- MainApp.bus().post(new EventOpenAPSMAUpdateResultGui(MainApp.instance().getString(R.string.openapsma_noprofile)));
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_noprofile)));
if (Config.logAPSResult)
log.debug(MainApp.instance().getString(R.string.openapsma_noprofile));
return;
}
if (pump == null) {
- MainApp.bus().post(new EventOpenAPSMAUpdateResultGui(MainApp.instance().getString(R.string.openapsma_nopump)));
+ MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_nopump)));
if (Config.logAPSResult)
log.debug(MainApp.instance().getString(R.string.openapsma_nopump));
return;
@@ -147,13 +160,13 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface {
SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext());
String units = profile.getUnits();
- String maxBgDefault = "180";
- String minBgDefault = "100";
- String targetBgDefault = "150";
+ String maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL;
+ String minBgDefault = Constants.MIN_BG_DEFAULT_MGDL;
+ String targetBgDefault = Constants.TARGET_BG_DEFAULT_MGDL;
if (!units.equals(Constants.MGDL)) {
- maxBgDefault = "10";
- minBgDefault = "5";
- targetBgDefault = "7";
+ maxBgDefault = Constants.MAX_BG_DEFAULT_MMOL;
+ minBgDefault = Constants.MIN_BG_DEFAULT_MMOL;
+ targetBgDefault = Constants.TARGET_BG_DEFAULT_MMOL;
}
Date now = new Date();
@@ -167,6 +180,7 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface {
minBg = Round.roundTo(minBg, 0.1d);
maxBg = Round.roundTo(maxBg, 0.1d);
+ Date start = new Date();
TreatmentsInterface treatments = MainApp.getConfigBuilder().getActiveTreatments();
TempBasalsInterface tempBasals = MainApp.getConfigBuilder().getActiveTempBasals();
treatments.updateTotalIOB();
@@ -176,71 +190,68 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface {
IobTotal iobTotal = IobTotal.combine(bolusIob, basalIob).round();
- TreatmentsPlugin.MealData mealData = treatments.getMealData();
+ MealData mealData = treatments.getMealData();
maxIob = MainApp.getConfigBuilder().applyMaxIOBConstraints(maxIob);
+ Profiler.log(log, "MA data gathering", start);
+
+ minBg = verifyHardLimits(minBg, "minBg", Constants.VERY_HARD_LIMIT_MIN_BG[0], Constants.VERY_HARD_LIMIT_MIN_BG[1]);
+ maxBg = verifyHardLimits(maxBg, "maxBg", Constants.VERY_HARD_LIMIT_MAX_BG[0], Constants.VERY_HARD_LIMIT_MAX_BG[1]);
+ targetBg = verifyHardLimits(targetBg, "targetBg", Constants.VERY_HARD_LIMIT_TARGET_BG[0], Constants.VERY_HARD_LIMIT_TARGET_BG[1]);
+
+ TempTargetRangePlugin tempTargetRangePlugin = (TempTargetRangePlugin) MainApp.getSpecificPlugin(TempTargetRangePlugin.class);
+ if (tempTargetRangePlugin != null && tempTargetRangePlugin.isEnabled(PluginBase.GENERAL)) {
+ TempTarget tempTarget = tempTargetRangePlugin.getTempTargetInProgress(new Date().getTime());
+ if (tempTarget != null) {
+ minBg = verifyHardLimits(tempTarget.low, "minBg", Constants.VERY_HARD_LIMIT_TEMP_MIN_BG[0], Constants.VERY_HARD_LIMIT_TEMP_MIN_BG[1]);
+ maxBg = verifyHardLimits(tempTarget.high, "maxBg", Constants.VERY_HARD_LIMIT_TEMP_MAX_BG[0], Constants.VERY_HARD_LIMIT_TEMP_MAX_BG[1]);
+ targetBg = verifyHardLimits((tempTarget.low + tempTarget.high) / 2, "targetBg", Constants.VERY_HARD_LIMIT_TEMP_TARGET_BG[0], Constants.VERY_HARD_LIMIT_TEMP_TARGET_BG[1]);
+ }
+ }
- minBg = verifyHardLimits(minBg, "minBg", 72, 180);
- maxBg = verifyHardLimits(maxBg, "maxBg", 100, 270);
- targetBg = verifyHardLimits(targetBg, "targetBg", 80, 200);
maxIob = verifyHardLimits(maxIob, "maxIob", 0, 7);
maxBasal = verifyHardLimits(maxBasal, "max_basal", 0.1, 10);
- if (!checkOnlyHardLimits(profile.getCarbAbsorbtionRate(), "carbs_hr", 4, 100)) return;
if (!checkOnlyHardLimits(profile.getDia(), "dia", 2, 7)) return;
if (!checkOnlyHardLimits(profile.getIc(profile.secondsFromMidnight()), "carbratio", 2, 100)) return;
if (!checkOnlyHardLimits(NSProfile.toMgdl(profile.getIsf(NSProfile.secondsFromMidnight()).doubleValue(), units), "sens", 2, 900)) return;
if (!checkOnlyHardLimits(profile.getMaxDailyBasal(), "max_daily_basal", 0.1, 10)) return;
if (!checkOnlyHardLimits(pump.getBaseBasalRate(), "current_basal", 0.01, 5)) return;
- determineBasalAdapterJS.setData(profile, maxIob, maxBasal, minBg, maxBg, targetBg, pump, iobTotal, glucoseStatus, mealData);
+ start = new Date();
+ determineBasalAdapterMAJS.setData(profile, maxIob, maxBasal, minBg, maxBg, targetBg, pump, iobTotal, glucoseStatus, mealData);
+ Profiler.log(log, "MA calculation", start);
- DetermineBasalResult determineBasalResult = determineBasalAdapterJS.invoke();
+ DetermineBasalResultMA determineBasalResultMA = determineBasalAdapterMAJS.invoke();
// Fix bug determine basal
- if (determineBasalResult.rate == 0d && determineBasalResult.duration == 0 && !MainApp.getConfigBuilder().isTempBasalInProgress())
- determineBasalResult.changeRequested = false;
+ if (determineBasalResultMA.rate == 0d && determineBasalResultMA.duration == 0 && !MainApp.getConfigBuilder().isTempBasalInProgress())
+ determineBasalResultMA.changeRequested = false;
// limit requests on openloop mode
if (!MainApp.getConfigBuilder().isClosedModeEnabled()) {
- if (MainApp.getConfigBuilder().isTempBasalInProgress() && Math.abs(determineBasalResult.rate - MainApp.getConfigBuilder().getTempBasalAbsoluteRate()) < 0.1)
- determineBasalResult.changeRequested = false;
- if (!MainApp.getConfigBuilder().isTempBasalInProgress() && Math.abs(determineBasalResult.rate - MainApp.getConfigBuilder().getBaseBasalRate()) < 0.1)
- determineBasalResult.changeRequested = false;
+ if (MainApp.getConfigBuilder().isTempBasalInProgress() && Math.abs(determineBasalResultMA.rate - MainApp.getConfigBuilder().getTempBasalAbsoluteRate()) < 0.1)
+ determineBasalResultMA.changeRequested = false;
+ if (!MainApp.getConfigBuilder().isTempBasalInProgress() && Math.abs(determineBasalResultMA.rate - MainApp.getConfigBuilder().getBaseBasalRate()) < 0.1)
+ determineBasalResultMA.changeRequested = false;
}
- determineBasalResult.iob = iobTotal;
+ determineBasalResultMA.iob = iobTotal;
- determineBasalAdapterJS.release();
+ determineBasalAdapterMAJS.release();
try {
- determineBasalResult.json.put("timestamp", DateUtil.toISOString(now));
+ determineBasalResultMA.json.put("timestamp", DateUtil.toISOString(now));
} catch (JSONException e) {
e.printStackTrace();
}
- lastDetermineBasalAdapterJS = determineBasalAdapterJS;
- lastAPSResult = determineBasalResult;
+ lastDetermineBasalAdapterMAJS = determineBasalAdapterMAJS;
+ lastAPSResult = determineBasalResultMA;
lastAPSRun = now;
- MainApp.bus().post(new EventOpenAPSMAUpdateGui());
+ MainApp.bus().post(new EventOpenAPSUpdateGui());
- //deviceStatus.suggested = determineBasalResult.json;
+ //deviceStatus.suggested = determineBasalResultMA.json;
}
- // safety checks
- public static boolean checkOnlyHardLimits(Double value, String valueName, double lowLimit, double highLimit) {
- return value.equals(verifyHardLimits(value, valueName, lowLimit, highLimit));
- }
-
- public static Double verifyHardLimits(Double value, String valueName, double lowLimit, double highLimit) {
- if (value < lowLimit || value > highLimit) {
- String msg = String.format(MainApp.sResources.getString(R.string.openapsma_valueoutofrange), valueName);
- log.error(msg);
- MainApp.getConfigBuilder().uploadError(msg);
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), msg, R.raw.error);
- value = Math.max(value, lowLimit);
- value = Math.min(value, highLimit);
- }
- return value;
- }
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSMAUpdateGui.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSUpdateGui.java
similarity index 73%
rename from app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSMAUpdateGui.java
rename to app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSUpdateGui.java
index 528473183e..65b3b49d53 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSMAUpdateGui.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSUpdateGui.java
@@ -3,5 +3,5 @@ package info.nightscout.androidaps.plugins.OpenAPSMA.events;
/**
* Created by mike on 05.08.2016.
*/
-public class EventOpenAPSMAUpdateGui {
+public class EventOpenAPSUpdateGui {
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSMAUpdateResultGui.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSUpdateResultGui.java
similarity index 62%
rename from app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSMAUpdateResultGui.java
rename to app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSUpdateResultGui.java
index 653dbbd583..2aa2365eff 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSMAUpdateResultGui.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSUpdateResultGui.java
@@ -3,10 +3,10 @@ package info.nightscout.androidaps.plugins.OpenAPSMA.events;
/**
* Created by mike on 05.08.2016.
*/
-public class EventOpenAPSMAUpdateResultGui {
+public class EventOpenAPSUpdateResultGui {
public String text = null;
- public EventOpenAPSMAUpdateResultGui(String text) {
+ public EventOpenAPSUpdateResultGui(String text) {
this.text = text;
}
}
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 537613b9e2..dfedda106e 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
@@ -29,6 +29,7 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
TextView statusView;
TextView stopPressedView;
ProgressBar progressBar;
+ BolusProgressHelperActivity helperActivity;
static double amount;
public static boolean bolusEnded = false;
@@ -45,6 +46,10 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
bolusEnded = false;
}
+ public void setHelperActivity(BolusProgressHelperActivity activity){
+ this.helperActivity = activity;
+ }
+
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
@@ -71,6 +76,14 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
if (bolusEnded) dismiss();
}
+ @Override
+ public void dismiss(){
+ super.dismiss();
+ if (helperActivity!= null){
+ helperActivity.finish();
+ }
+ }
+
@Override
public void onPause() {
super.onPause();
@@ -124,7 +137,7 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL
@Override
public void run() {
if (c.sStatus == c.CONNECTING) {
- statusView.setText(String.format(getString(R.string.danar_history_connectingfor), c.sSecondsElapsed));
+ 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 {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressHelperActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressHelperActivity.java
new file mode 100644
index 0000000000..6fddc218ac
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressHelperActivity.java
@@ -0,0 +1,24 @@
+package info.nightscout.androidaps.plugins.Overview.Dialogs;
+
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+
+/**
+ * Created by adrian on 09/02/17.
+ */
+
+public class BolusProgressHelperActivity extends AppCompatActivity {
+ public BolusProgressHelperActivity() {
+ super();
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ this.getIntent().getDoubleExtra("insulin", 0d);
+ BolusProgressDialog bolusProgressDialog = new BolusProgressDialog();
+ bolusProgressDialog.setHelperActivity(this);
+ bolusProgressDialog.setInsulin(this.getIntent().getDoubleExtra("insulin", 0d));
+ bolusProgressDialog.show(this.getSupportFragmentManager(), "BolusProgress");
+ }
+}
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
new file mode 100644
index 0000000000..9e06bbb600
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java
@@ -0,0 +1,79 @@
+package info.nightscout.androidaps.plugins.Overview.Dialogs;
+
+
+import android.content.Context;
+import android.os.Bundle;
+import android.support.v4.app.DialogFragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.Button;
+import android.widget.TextView;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.text.DecimalFormat;
+
+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.utils.PlusMinusEditText;
+import info.nightscout.utils.XdripCalibrations;
+
+public class CalibrationDialog extends DialogFragment implements View.OnClickListener {
+ private static Logger log = LoggerFactory.getLogger(CalibrationDialog.class);
+
+ Button okButton;
+ PlusMinusEditText bgText;
+ TextView unitsView;
+
+ Context parentContext;
+
+ public CalibrationDialog() {
+ // Required empty public constructor
+ }
+
+ public void setContext(Context context) {
+ parentContext = context;
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ View view = inflater.inflate(R.layout.overview_calibration_dialog, container, false);
+
+ getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
+ getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
+
+ okButton = (Button) view.findViewById(R.id.overview_calibration_okbutton);
+ okButton.setOnClickListener(this);
+
+ NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
+ Double bg = NSProfile.fromMgdlToUnits(GlucoseStatus.getGlucoseStatusData() != null ? GlucoseStatus.getGlucoseStatusData().glucose : 0d, profile.getUnits());
+ 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
+ bgText = new PlusMinusEditText(view, R.id.overview_calibration_bg, R.id.overview_calibration_bg_plus, R.id.overview_calibration_bg_minus, bg, 0d, 500d, 1d, new DecimalFormat("0"), false);
+
+ unitsView = (TextView) view.findViewById(R.id.overview_calibration_units);
+ unitsView.setText(profile.getUnits());
+
+ return view;
+ }
+
+ @Override
+ public void onClick(View view) {
+ switch (view.getId()) {
+ case R.id.overview_calibration_okbutton:
+ final Double bg = bgText.getValue();
+ XdripCalibrations.confirmAndSendCalibration(bg, parentContext);
+ dismiss();
+ break;
+ }
+ }
+}
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 60f7c48696..890c393edc 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
@@ -36,20 +36,18 @@ import java.util.Date;
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.interfaces.PumpInterface;
import info.nightscout.androidaps.interfaces.TempBasalsInterface;
import info.nightscout.androidaps.interfaces.TreatmentsInterface;
-import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderFragment;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
-import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal;
+import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.client.data.NSProfile;
import info.nightscout.utils.BolusWizard;
import info.nightscout.utils.DateUtil;
import info.nightscout.utils.DecimalFormatter;
import info.nightscout.utils.PlusMinusEditText;
-import info.nightscout.utils.Round;
import info.nightscout.utils.SafeParse;
import info.nightscout.utils.ToastUtils;
@@ -281,7 +279,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener {
else editBg.setStep(0.1d);
// Set BG if not old
- BgReading lastBg = MainApp.getDbHelper().actualBg();
+ BgReading lastBg = GlucoseStatus.actualBg();
if (lastBg != null) {
Double lastBgValue = lastBg.valueToUnits(units);
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 38e954571b..5d83a76cc7 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
@@ -20,6 +20,9 @@ public class Notification {
public static final int PROFILE_NOT_SET_NOT_INITIALIZED = 5;
public static final int FAILED_UDPATE_PROFILE = 6;
public static final int BASAL_VALUE_BELOW_MINIMUM = 7;
+ public static final int OLD_NSCLIENT = 8;
+ public static final int INVALID_PHONE_NUMBER = 9;
+ public static final int APPROACHING_DAILY_LIMIT = 10;
public int id;
public Date date;
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 1cb7ae9b59..61f4279a51 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
@@ -13,6 +13,7 @@ import android.os.HandlerThread;
import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
+import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.CardView;
import android.support.v7.widget.LinearLayoutManager;
@@ -22,6 +23,8 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
import android.widget.LinearLayout;
import android.widget.TextView;
@@ -49,10 +52,12 @@ import info.nightscout.androidaps.Config;
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.IobTotal;
import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.db.BgReading;
-import info.nightscout.androidaps.db.DatabaseHelper;
import info.nightscout.androidaps.db.TempBasal;
+import info.nightscout.androidaps.db.TempTarget;
import info.nightscout.androidaps.db.Treatment;
import info.nightscout.androidaps.events.EventInitializationChanged;
import info.nightscout.androidaps.events.EventNewBG;
@@ -66,16 +71,22 @@ 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;
-import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal;
+import info.nightscout.androidaps.plugins.OpenAPSAMA.DetermineBasalResultAMA;
+import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin;
+import info.nightscout.androidaps.plugins.Overview.Dialogs.CalibrationDialog;
import info.nightscout.androidaps.plugins.Overview.Dialogs.NewTreatmentDialog;
import info.nightscout.androidaps.plugins.Overview.Dialogs.WizardDialog;
-import info.nightscout.androidaps.plugins.Overview.graphExtensions.PointsWithLabelGraphSeries;
import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification;
import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification;
+import info.nightscout.androidaps.plugins.Overview.graphExtensions.PointsWithLabelGraphSeries;
import info.nightscout.androidaps.plugins.Overview.graphExtensions.TimeAsXAxisLabelFormatter;
+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.utils.BolusWizard;
import info.nightscout.utils.DateUtil;
@@ -105,17 +116,20 @@ public class OverviewFragment extends Fragment {
TextView activeProfileView;
TextView iobView;
TextView apsModeView;
+ TextView tempTargetView;
+ TextView pumpStatusView;
GraphView bgGraph;
+ CheckBox showPredictionView;
RecyclerView notificationsView;
LinearLayoutManager llm;
LinearLayout cancelTempLayout;
LinearLayout acceptTempLayout;
- LinearLayout quickWizardLayout;
Button cancelTempButton;
Button treatmentButton;
Button wizardButton;
+ Button calibrationButton;
Button acceptTempButton;
Button quickWizardButton;
@@ -149,9 +163,11 @@ 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);
iobView = (TextView) view.findViewById(R.id.overview_iob);
apsModeView = (TextView) view.findViewById(R.id.overview_apsmode);
+ tempTargetView = (TextView) view.findViewById(R.id.overview_temptarget);
bgGraph = (GraphView) view.findViewById(R.id.overview_bggraph);
cancelTempButton = (Button) view.findViewById(R.id.overview_canceltemp);
treatmentButton = (Button) view.findViewById(R.id.overview_treatment);
@@ -161,13 +177,26 @@ public class OverviewFragment extends Fragment {
acceptTempButton = (Button) view.findViewById(R.id.overview_accepttempbutton);
acceptTempLayout = (LinearLayout) view.findViewById(R.id.overview_accepttemplayout);
quickWizardButton = (Button) view.findViewById(R.id.overview_quickwizard);
- quickWizardLayout = (LinearLayout) view.findViewById(R.id.overview_quickwizardlayout);
+ calibrationButton = (Button) view.findViewById(R.id.overview_calibration);
+ showPredictionView = (CheckBox) view.findViewById(R.id.overview_showprediction);
notificationsView = (RecyclerView) view.findViewById(R.id.overview_notifications);
notificationsView.setHasFixedSize(true);
llm = new LinearLayoutManager(view.getContext());
notificationsView.setLayoutManager(llm);
+ showPredictionView.setChecked(prefs.getBoolean("showprediction", false));
+
+ showPredictionView.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ SharedPreferences.Editor editor = prefs.edit();
+ editor.putBoolean("showprediction", showPredictionView.isChecked());
+ editor.apply();
+ updateGUI();
+ }
+ });
+
treatmentButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -210,11 +239,20 @@ public class OverviewFragment extends Fragment {
}
});
+ calibrationButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ FragmentManager manager = getFragmentManager();
+ CalibrationDialog calibrationDialog = new CalibrationDialog();
+ calibrationDialog.setContext(getContext());
+ calibrationDialog.show(manager, "CalibrationDialog");
+ }
+ });
acceptTempButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- MainApp.getConfigBuilder().getActiveLoop().invoke(false);
+ ConfigBuilderPlugin.getActiveLoop().invoke("Accept temp button", false);
final LoopPlugin.LastRun finalLastRun = LoopPlugin.lastRun;
if (finalLastRun != null && finalLastRun.lastAPSRun != null && finalLastRun.constraintsProcessed.changeRequested) {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
@@ -231,7 +269,7 @@ public class OverviewFragment extends Fragment {
finalLastRun.setByPump = applyResult;
finalLastRun.lastEnact = new Date();
finalLastRun.lastOpenModeAccept = new Date();
- MainApp.getConfigBuilder().uploadDeviceStatus();
+ MainApp.getConfigBuilder().uploadDeviceStatus(15);
ObjectivesPlugin objectivesPlugin = (ObjectivesPlugin) MainApp.getSpecificPlugin(ObjectivesPlugin.class);
if (objectivesPlugin != null) {
objectivesPlugin.manualEnacts++;
@@ -250,26 +288,39 @@ public class OverviewFragment extends Fragment {
}
});
+ pumpStatusView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if (MainApp.getConfigBuilder().isSuspended() || !MainApp.getConfigBuilder().isInitialized())
+ sHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ MainApp.getConfigBuilder().updateStatus("RefreshClicked");
+ }
+ });
+ }
+ });
+
updateGUI();
return view;
}
void processQuickWizard() {
- final BgReading lastBG = MainApp.getDbHelper().lastBg();
+ final BgReading actualBg = GlucoseStatus.actualBg();
if (MainApp.getConfigBuilder() == null || ConfigBuilderPlugin.getActiveProfile() == null) // app not initialized yet
return;
final NSProfile profile = ConfigBuilderPlugin.getActiveProfile().getProfile();
QuickWizard.QuickWizardEntry quickWizardEntry = getPlugin().quickWizard.getActive();
- if (quickWizardEntry != null && lastBG != null) {
- quickWizardLayout.setVisibility(View.VISIBLE);
+ if (quickWizardEntry != null && actualBg != null) {
+ quickWizardButton.setVisibility(View.VISIBLE);
String text = MainApp.sResources.getString(R.string.bolus) + ": " + quickWizardEntry.buttonText();
BolusWizard wizard = new BolusWizard();
- wizard.doCalc(profile.getDefaultProfile(), quickWizardEntry.carbs(), lastBG.valueToUnits(profile.getUnits()), 0d, true, true);
+ wizard.doCalc(profile.getDefaultProfile(), quickWizardEntry.carbs(), actualBg.valueToUnits(profile.getUnits()), 0d, true, true);
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);
@@ -277,7 +328,7 @@ public class OverviewFragment extends Fragment {
boluscalcJSON.put("iob", -(wizard.insulingFromBolusIOB + wizard.insulingFromBasalsIOB));
boluscalcJSON.put("bolusiobused", true);
boluscalcJSON.put("basaliobused", true);
- boluscalcJSON.put("bg", lastBG.valueToUnits(profile.getUnits()));
+ boluscalcJSON.put("bg", actualBg.valueToUnits(profile.getUnits()));
boluscalcJSON.put("insulinbg", wizard.insulinFromBG);
boluscalcJSON.put("insulinbgused", true);
boluscalcJSON.put("bgdiff", wizard.bgDiff);
@@ -324,7 +375,7 @@ public class OverviewFragment extends Fragment {
getContext(),
finalInsulinAfterConstraints,
finalCarbsAfterConstraints,
- lastBG.valueToUnits(profile.getUnits()),
+ actualBg.valueToUnits(profile.getUnits()),
"Manual",
0,
boluscalcJSON
@@ -406,13 +457,41 @@ public class OverviewFragment extends Fragment {
}
@Subscribe
- public void onStatusEvent(final EventNewBasalProfile ev) { updateGUIIfVisible(); }
+ public void onStatusEvent(final EventNewBasalProfile ev) {
+ updateGUIIfVisible();
+ }
@Subscribe
- public void onStatusEvent(final EventNewNotification n) { updateNotifications(); }
+ public void onStatusEvent(final EventTempTargetRangeChange ev) {
+ updateGUIIfVisible();
+ }
@Subscribe
- public void onStatusEvent(final EventDismissNotification n) { updateNotifications(); }
+ public void onStatusEvent(final EventNewNotification n) {
+ updateNotifications();
+ }
+
+ @Subscribe
+ public void onStatusEvent(final EventDismissNotification n) {
+ updateNotifications();
+ }
+
+ @Subscribe
+ public void onStatusEvent(final EventDanaRConnectionStatus 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);
+ }
+ });
+ }
private void hideTempRecommendation() {
Activity activity = getActivity();
@@ -436,13 +515,48 @@ public class OverviewFragment extends Fragment {
});
}
+ private void updatePumpStatus(String status) {
+ PumpInterface pump = MainApp.getConfigBuilder();
+ if (status != null) {
+ 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);
+ } else {
+ wizardButton.setVisibility(View.VISIBLE);
+ treatmentButton.setVisibility(View.VISIBLE);
+ pumpStatusView.setVisibility(View.GONE);
+ }
+ }
+
@SuppressLint("SetTextI18n")
public void updateGUI() {
updateNotifications();
- BgReading actualBG = MainApp.getDbHelper().actualBg();
- BgReading lastBG = MainApp.getDbHelper().lastBg();
- if (MainApp.getConfigBuilder() == null || MainApp.getConfigBuilder().getActiveProfile() == null) // app not initialized yet
+ BgReading actualBG = GlucoseStatus.actualBg();
+ BgReading lastBG = GlucoseStatus.lastBg();
+
+ 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);
return;
+ } else {
+ pumpStatusView.setVisibility(View.GONE);
+ }
// Skip if not initialized yet
if (bgGraph == null)
@@ -458,7 +572,7 @@ 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 (activeloop != null && activeloop.isEnabled(activeloop.getType())) {
if (MainApp.getConfigBuilder().isClosedModeEnabled()) {
apsModeView.setText(MainApp.sResources.getString(R.string.closedloop));
} else {
@@ -476,10 +590,10 @@ public class OverviewFragment extends Fragment {
@Override
public boolean onLongClick(View view) {
view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
- if (activeloop == null){
+ if (activeloop == null) {
log.error("no active loop?");
return true;
- } else if (activeloop.isEnabled(PluginBase.LOOP)){
+ } else if (activeloop.isEnabled(PluginBase.LOOP)) {
activeloop.setFragmentEnabled(PluginBase.LOOP, false);
activeloop.setFragmentVisible(PluginBase.LOOP, false);
} else {
@@ -497,8 +611,34 @@ public class OverviewFragment extends Fragment {
apsModeView.setVisibility(View.GONE);
}
- // **** Temp button ****
+ // temp target
NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
+ TempTargetRangePlugin tempTargetRangePlugin = (TempTargetRangePlugin) MainApp.getSpecificPlugin(TempTargetRangePlugin.class);
+ if (Config.APS && tempTargetRangePlugin != null && tempTargetRangePlugin.isEnabled(PluginBase.GENERAL)) {
+ TempTarget tempTarget = tempTargetRangePlugin.getTempTargetInProgress(new Date().getTime());
+ if (tempTarget != null) {
+ tempTargetView.setTextColor(Color.BLACK);
+ tempTargetView.setBackgroundResource(R.drawable.temptargetborder);
+ tempTargetView.setVisibility(View.VISIBLE);
+ 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;
+ 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.setVisibility(View.VISIBLE);
+ }
+ } else {
+ tempTargetView.setVisibility(View.GONE);
+ }
+
+ // **** Temp button ****
PumpInterface pump = MainApp.getConfigBuilder();
boolean showAcceptButton = !MainApp.getConfigBuilder().isClosedModeEnabled(); // Open mode needed
@@ -506,15 +646,22 @@ public class OverviewFragment extends Fragment {
showAcceptButton = showAcceptButton && (finalLastRun.lastOpenModeAccept == null || finalLastRun.lastOpenModeAccept.getTime() < finalLastRun.lastAPSRun.getTime()); // never accepted or before last result
showAcceptButton = showAcceptButton && finalLastRun.constraintsProcessed.changeRequested; // change is requested
- if (showAcceptButton && pump.isInitialized()) {
+ if (showAcceptButton && pump.isInitialized() && !pump.isSuspended() && ConfigBuilderPlugin.getActiveLoop() != null) {
acceptTempLayout.setVisibility(View.VISIBLE);
acceptTempButton.setText(getContext().getString(R.string.setbasalquestion) + "\n" + finalLastRun.constraintsProcessed);
} else {
acceptTempLayout.setVisibility(View.GONE);
}
+ // **** Calibration button ****
+ if (MainApp.getSpecificPlugin(SourceXdripPlugin.class).isEnabled(PluginBase.BGSOURCE) && profile != null && GlucoseStatus.actualBg() != null) {
+ calibrationButton.setVisibility(View.VISIBLE);
+ } else {
+ calibrationButton.setVisibility(View.GONE);
+ }
+
+ TempBasal activeTemp = pump.getTempBasal();
if (pump.isTempBasalInProgress()) {
- TempBasal activeTemp = pump.getTempBasal();
cancelTempLayout.setVisibility(View.VISIBLE);
cancelTempButton.setText(MainApp.instance().getString(R.string.cancel) + ": " + activeTemp.toString());
runningTempView.setVisibility(View.VISIBLE);
@@ -539,7 +686,7 @@ public class OverviewFragment extends Fragment {
public boolean onLongClick(View view) {
view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
NewNSTreatmentDialog newDialog = new NewNSTreatmentDialog();
- final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false);
+ final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false, false);
profileswitch.executeProfileSwitch = true;
newDialog.setOptions(profileswitch);
newDialog.show(getFragmentManager(), "NewNSTreatmentDialog");
@@ -548,40 +695,46 @@ public class OverviewFragment extends Fragment {
});
activeProfileView.setLongClickable(true);
- if (profile == null || !pump.isInitialized()) {
- // disable all treatment buttons because we are not able to check constraints without profile
- wizardButton.setVisibility(View.INVISIBLE);
- treatmentButton.setVisibility(View.INVISIBLE);
- return;
- } else {
- wizardButton.setVisibility(View.VISIBLE);
- treatmentButton.setVisibility(View.VISIBLE);
- }
- String units = profile.getUnits();
+ tempTargetView.setOnLongClickListener(new View.OnLongClickListener() {
+ @Override
+ public boolean onLongClick(View view) {
+ view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
+ NewNSTreatmentDialog newTTDialog = new NewNSTreatmentDialog();
+ final OptionsToShow temptarget = new OptionsToShow(R.id.careportal_temporarytarget, R.string.careportal_temporarytarget, false, false, false, false, true, false, false, false, false, true);
+ temptarget.executeTempTarget = true;
+ newTTDialog.setOptions(temptarget);
+ newTTDialog.show(getFragmentManager(), "NewNSTreatmentDialog");
+ return true;
+ }
+ });
+ tempTargetView.setLongClickable(true);
// QuickWizard button
QuickWizard.QuickWizardEntry quickWizardEntry = getPlugin().quickWizard.getActive();
- if (quickWizardEntry != null && lastBG != null && pump.isInitialized()) {
- quickWizardLayout.setVisibility(View.VISIBLE);
+ if (quickWizardEntry != null && lastBG != null && pump.isInitialized() && !pump.isSuspended()) {
+ 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);
text += " " + DecimalFormatter.to2Decimal(wizard.calculatedTotalInsulin) + "U";
quickWizardButton.setText(text);
if (wizard.calculatedTotalInsulin <= 0)
- quickWizardLayout.setVisibility(View.GONE);
+ quickWizardButton.setVisibility(View.GONE);
} else
- quickWizardLayout.setVisibility(View.GONE);
+ quickWizardButton.setVisibility(View.GONE);
+
+ String units = profile.getUnits();
// **** BG value ****
- if (lastBG != null && bgView != null) {
+ if (lastBG != null) {
bgView.setText(lastBG.valueToUnitsToString(profile.getUnits()));
arrowView.setText(lastBG.directionToSymbol());
- DatabaseHelper.GlucoseStatus glucoseStatus = MainApp.getDbHelper().getGlucoseStatusData();
- if (glucoseStatus != null){
+ GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData();
+ if (glucoseStatus != null) {
deltaView.setText("Δ " + NSProfile.toUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units) + " " + units);
- avgdeltaView.setText("øΔ " + NSProfile.toUnitsString(glucoseStatus.avgdelta, glucoseStatus.avgdelta * 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));
}
BgReading.units = profile.getUnits();
@@ -602,16 +755,21 @@ public class OverviewFragment extends Fragment {
// iob
MainApp.getConfigBuilder().getActiveTreatments().updateTotalIOB();
IobTotal bolusIob = MainApp.getConfigBuilder().getActiveTreatments().getLastCalculation().round();
- if (bolusIob == null) bolusIob = new IobTotal();
MainApp.getConfigBuilder().getActiveTempBasals().updateTotalIOB();
IobTotal basalIob = MainApp.getConfigBuilder().getActiveTempBasals().getLastCalculation().round();
- if (basalIob == null) basalIob = new IobTotal();
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 "
+ getString(R.string.basal) + ": " + DecimalFormatter.to2Decimal(basalIob.basaliob) + "U)";
iobView.setText(iobtext);
+ boolean showPrediction = showPredictionView.isChecked() && finalLastRun != null && finalLastRun.constraintsProcessed.getClass().equals(DetermineBasalResultAMA.class);
+ if (MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class) != null && MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class).isEnabled(PluginBase.APS)) {
+ showPredictionView.setVisibility(View.VISIBLE);
+ } else {
+ showPredictionView.setVisibility(View.GONE);
+ }
+
// ****** GRAPH *******
// allign to hours
@@ -622,27 +780,44 @@ public class OverviewFragment extends Fragment {
calendar.set(Calendar.MINUTE, 0);
calendar.add(Calendar.HOUR, 1);
- int hoursToFetch = 6;
- long toTime = calendar.getTimeInMillis() + 100000; // little bit more to avoid wrong rounding
- long fromTime = toTime - hoursToFetch * 60 * 60 * 1000L;
+ int hoursToFetch;
+ long toTime;
+ long fromTime;
+ long endTime;
+ if (showPrediction) {
+ int predHours = (int) (Math.ceil(((DetermineBasalResultAMA) finalLastRun.constraintsProcessed).getLatestPredictionsTime() - new Date().getTime()) / (60 * 60 * 1000));
+ predHours = Math.min(2, predHours);
+ predHours = Math.max(0, predHours);
+ hoursToFetch = (int) (6 - predHours);
+ toTime = calendar.getTimeInMillis() + 100000; // little bit more to avoid wrong rounding
+ fromTime = toTime - hoursToFetch * 60 * 60 * 1000L;
+ endTime = toTime + predHours * 60 * 60 * 1000L;
+ } else {
+ hoursToFetch = 6;
+ toTime = calendar.getTimeInMillis() + 100000; // little bit more to avoid wrong rounding
+ fromTime = toTime - hoursToFetch * 60 * 60 * 1000L;
+ endTime = toTime;
+ }
Double lowLine = SafeParse.stringToDouble(prefs.getString("low_mark", "0"));
Double highLine = SafeParse.stringToDouble(prefs.getString("high_mark", "0"));
- if (lowLine < 1){
+ if (lowLine < 1) {
lowLine = NSProfile.fromMgdlToUnits(OverviewPlugin.bgTargetLow, units);
}
- if(highLine < 1){
+ if (highLine < 1) {
highLine = NSProfile.fromMgdlToUnits(OverviewPlugin.bgTargetHigh, units);
}
+ LineGraphSeries basalsLineSeries = null;
BarGraphSeries basalsSeries = null;
LineGraphSeries seriesLow = null;
LineGraphSeries seriesHigh = null;
LineGraphSeries seriesNow = null;
PointsGraphSeries seriesInRage = null;
PointsGraphSeries seriesOutOfRange = null;
+ PointsGraphSeries predSeries = null;
PointsWithLabelGraphSeries seriesTreatments = null;
// remove old data from graph
@@ -651,11 +826,11 @@ public class OverviewFragment extends Fragment {
// **** HIGH and LOW targets graph ****
DataPoint[] lowDataPoints = new DataPoint[]{
new DataPoint(fromTime, lowLine),
- new DataPoint(toTime, lowLine)
+ new DataPoint(endTime, lowLine)
};
DataPoint[] highDataPoints = new DataPoint[]{
new DataPoint(fromTime, highLine),
- new DataPoint(toTime, highLine)
+ new DataPoint(endTime, highLine)
};
bgGraph.addSeries(seriesLow = new LineGraphSeries(lowDataPoints));
seriesLow.setColor(Color.RED);
@@ -672,19 +847,26 @@ public class OverviewFragment extends Fragment {
public boolean isTempBasal = false;
}
- Double maxAllowedBasal = MainApp.getConfigBuilder().applyBasalConstraints(Constants.basalAbsoluteOnlyForCheckLimit);
Double maxBasalValueFound = 0d;
long now = new Date().getTime();
if (pump.getPumpDescription().isTempBasalCapable) {
List basalArray = new ArrayList();
+ List basalLineArray = new ArrayList();
+ double lastBaseBasal = 0;
for (long time = fromTime; time < now; time += 5 * 60 * 1000L) {
TempBasal tb = MainApp.getConfigBuilder().getTempBasal(new Date(time));
+ double basebasal = profile.getBasal(NSProfile.secondsFromMidnight(new Date(time)));
Double basal = 0d;
if (tb != null)
basalArray.add(new BarDataPoint(time, basal = tb.tempBasalConvertedToAbsolute(new Date(time)), true));
- else
- basalArray.add(new BarDataPoint(time, basal = profile.getBasal(NSProfile.secondsFromMidnight(new Date(time))), false));
+ else {
+ basalArray.add(new BarDataPoint(time, basal = basebasal, false));
+ }
+ if (basebasal != lastBaseBasal)
+ basalLineArray.add(new DataPoint(time, lastBaseBasal));
+ basalLineArray.add(new DataPoint(time, basebasal));
+ lastBaseBasal = basebasal;
maxBasalValueFound = Math.max(maxBasalValueFound, basal);
}
BarDataPoint[] basal = new BarDataPoint[basalArray.size()];
@@ -698,17 +880,23 @@ public class OverviewFragment extends Fragment {
else return Color.CYAN;
}
});
+ DataPoint[] basalLine = new DataPoint[basalLineArray.size()];
+ basalLine = basalLineArray.toArray(basalLine);
+ bgGraph.addSeries(basalsLineSeries = new LineGraphSeries(basalLine));
+ basalsLineSeries.setColor(Color.CYAN);
+ basalsLineSeries.setDrawDataPoints(false);
+ basalsLineSeries.setThickness(2);
}
// set manual x bounds to have nice steps
- bgGraph.getViewport().setMaxX(toTime);
+ bgGraph.getViewport().setMaxX(endTime);
bgGraph.getViewport().setMinX(fromTime);
bgGraph.getViewport().setXAxisBoundsManual(true);
bgGraph.getGridLabelRenderer().setLabelFormatter(new TimeAsXAxisLabelFormatter(getActivity(), "HH"));
bgGraph.getGridLabelRenderer().setNumHorizontalLabels(7); // only 7 because of the space
// **** BG graph ****
- List bgReadingsArray = MainApp.getDbHelper().getDataFromTime(fromTime);
+ List bgReadingsArray = MainApp.getDbHelper().getBgreadingsDataFromTime(fromTime, true);
List inRangeArray = new ArrayList();
List outOfRangeArray = new ArrayList();
@@ -727,7 +915,7 @@ public class OverviewFragment extends Fragment {
}
maxBgValue = NSProfile.fromMgdlToUnits(maxBgValue, units);
maxBgValue = units.equals(Constants.MGDL) ? Round.roundTo(maxBgValue, 40d) + 80 : Round.roundTo(maxBgValue, 2d) + 4;
- if(highLine > maxBgValue) maxBgValue = highLine;
+ if (highLine > maxBgValue) maxBgValue = highLine;
Integer numOfHorizLines = units.equals(Constants.MGDL) ? (int) (maxBgValue / 40 + 1) : (int) (maxBgValue / 2 + 1);
BgReading[] inRange = new BgReading[inRangeArray.size()];
@@ -750,6 +938,19 @@ public class OverviewFragment extends Fragment {
seriesOutOfRange.setColor(Color.RED);
}
+ if (showPrediction) {
+ DetermineBasalResultAMA amaResult = (DetermineBasalResultAMA) finalLastRun.constraintsProcessed;
+ List predArray = amaResult.getPredictions();
+ BgReading[] pred = new BgReading[predArray.size()];
+ pred = predArray.toArray(pred);
+ if (pred.length > 0) {
+ bgGraph.addSeries(predSeries = new PointsGraphSeries(pred));
+ predSeries.setShape(PointsGraphSeries.Shape.POINT);
+ predSeries.setSize(4);
+ predSeries.setColor(Color.MAGENTA);
+ }
+ }
+
// **** NOW line ****
DataPoint[] nowPoints = new DataPoint[]{
new DataPoint(now, 0),
@@ -762,8 +963,8 @@ public class OverviewFragment extends Fragment {
// custom paint to make a dotted line
Paint paint = new Paint();
paint.setStyle(Paint.Style.STROKE);
- paint.setStrokeWidth(1);
- paint.setPathEffect(new DashPathEffect(new float[]{4, 20}, 0));
+ paint.setStrokeWidth(2);
+ paint.setPathEffect(new DashPathEffect(new float[]{10, 20}, 0));
paint.setColor(Color.WHITE);
seriesNow.setCustomPaint(paint);
@@ -796,12 +997,13 @@ public class OverviewFragment extends Fragment {
// set second scale
if (pump.getPumpDescription().isTempBasalCapable) {
bgGraph.getSecondScale().addSeries(basalsSeries);
+ bgGraph.getSecondScale().addSeries(basalsLineSeries);
bgGraph.getSecondScale().setMinY(0);
bgGraph.getSecondScale().setMaxY(maxBgValue / lowLine * maxBasalValueFound * 1.2d);
- bgGraph.getGridLabelRenderer().setVerticalLabelsSecondScaleColor(MainApp.instance().getResources().getColor(R.color.background_material_dark)); // same color as backround = hide
+ bgGraph.getGridLabelRenderer().setVerticalLabelsSecondScaleColor(ContextCompat.getColor(MainApp.instance(), R.color.background_material_dark)); // same color as backround = hide
}
-
+ updatePumpStatus(null);
}
//Notifications
@@ -827,13 +1029,13 @@ public class OverviewFragment extends Fragment {
holder.text.setText(notification.text);
holder.time.setText(DateUtil.timeString(notification.date));
if (notification.level == Notification.URGENT)
- holder.cv.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.notificationUrgent));
+ holder.cv.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.notificationUrgent));
else if (notification.level == Notification.NORMAL)
- holder.cv.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.notificationNormal));
+ holder.cv.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.notificationNormal));
else if (notification.level == Notification.LOW)
- holder.cv.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.notificationLow));
+ holder.cv.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.notificationLow));
else if (notification.level == Notification.INFO)
- holder.cv.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.notificationInfo));
+ holder.cv.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.notificationInfo));
}
@Override
@@ -893,5 +1095,4 @@ public class OverviewFragment extends Fragment {
}
-
}
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 2dbc3332d0..9caa2fde10 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
@@ -47,6 +47,17 @@ public class OverviewPlugin implements PluginBase {
return MainApp.instance().getString(R.string.overview);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.overview_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;
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 f501ae5a0e..d9bff5a4cd 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
@@ -38,6 +38,12 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface {
return MainApp.instance().getString(R.string.safety);
}
+ @Override
+ public String getNameShort() {
+ // use long name as fallback (no tabs)
+ return getName();
+ }
+
@Override
public boolean isEnabled(int type) {
return type == CONSTRAINTS;
@@ -97,8 +103,8 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface {
if (profile == null) return absoluteRate;
if (absoluteRate < 0) absoluteRate = 0d;
- Integer maxBasalMult = 4;
- Integer maxBasalFromDaily = 3;
+ Integer maxBasalMult = SafeParse.stringToInt(SP.getString("openapsama_current_basal_safety_multiplier", "4"));
+ Integer maxBasalFromDaily = SafeParse.stringToInt(SP.getString("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) {
@@ -136,8 +142,8 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface {
if (absoluteRate < 0) absoluteRate = 0d;
- Integer maxBasalMult = 4;
- Integer maxBasalFromDaily = 3;
+ Integer maxBasalMult = SafeParse.stringToInt(SP.getString("openapsama_current_basal_safety_multiplier", "4"));
+ Integer maxBasalFromDaily = SafeParse.stringToInt(SP.getString("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) {
@@ -185,7 +191,7 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface {
public Integer applyCarbsConstraints(Integer carbs) {
SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext());
try {
- Integer maxCarbs = Integer.parseInt(SP.getString("treatmentssafety_maxcarbs", "48"));
+ Integer maxCarbs = SafeParse.stringToInt(SP.getString("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/SimpleProfileFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfileFragment.java
index 22e293a023..4a31333ad9 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfileFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfileFragment.java
@@ -48,7 +48,6 @@ public class SimpleProfileFragment extends Fragment implements FragmentBase {
RadioButton mmolView;
EditText icView;
EditText isfView;
- EditText carView;
EditText basalView;
EditText targetlowView;
EditText targethighView;
@@ -63,7 +62,6 @@ public class SimpleProfileFragment extends Fragment implements FragmentBase {
mmolView = (RadioButton) layout.findViewById(R.id.simpleprofile_mmol);
icView = (EditText) layout.findViewById(R.id.simpleprofile_ic);
isfView = (EditText) layout.findViewById(R.id.simpleprofile_isf);
- carView = (EditText) layout.findViewById(R.id.simpleprofile_car);
basalView = (EditText) layout.findViewById(R.id.simpleprofile_basalrate);
targetlowView = (EditText) layout.findViewById(R.id.simpleprofile_targetlow);
targethighView = (EditText) layout.findViewById(R.id.simpleprofile_targethigh);
@@ -82,7 +80,6 @@ public class SimpleProfileFragment extends Fragment implements FragmentBase {
diaView.setText(simpleProfilePlugin.dia.toString());
icView.setText(simpleProfilePlugin.ic.toString());
isfView.setText(simpleProfilePlugin.isf.toString());
- carView.setText(simpleProfilePlugin.car.toString());
basalView.setText(simpleProfilePlugin.basal.toString());
targetlowView.setText(simpleProfilePlugin.targetLow.toString());
targethighView.setText(simpleProfilePlugin.targetHigh.toString());
@@ -110,7 +107,7 @@ public class SimpleProfileFragment extends Fragment implements FragmentBase {
@Override
public void onClick(View view) {
NewNSTreatmentDialog newDialog = new NewNSTreatmentDialog();
- final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false);
+ final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false, false);
profileswitch.executeProfileSwitch = true;
newDialog.setOptions(profileswitch);
newDialog.show(getFragmentManager(), "NewNSTreatmentDialog");
@@ -134,7 +131,6 @@ public class SimpleProfileFragment extends Fragment implements FragmentBase {
simpleProfilePlugin.dia = SafeParse.stringToDouble(diaView.getText().toString());
simpleProfilePlugin.ic = SafeParse.stringToDouble(icView.getText().toString());
simpleProfilePlugin.isf = SafeParse.stringToDouble(isfView.getText().toString());
- simpleProfilePlugin.car = SafeParse.stringToDouble(carView.getText().toString());
simpleProfilePlugin.basal = SafeParse.stringToDouble(basalView.getText().toString());
simpleProfilePlugin.targetLow = SafeParse.stringToDouble(targetlowView.getText().toString());
simpleProfilePlugin.targetHigh = SafeParse.stringToDouble(targethighView.getText().toString());
@@ -145,7 +141,6 @@ public class SimpleProfileFragment extends Fragment implements FragmentBase {
diaView.addTextChangedListener(textWatch);
icView.addTextChangedListener(textWatch);
isfView.addTextChangedListener(textWatch);
- carView.addTextChangedListener(textWatch);
basalView.addTextChangedListener(textWatch);
targetlowView.addTextChangedListener(textWatch);
targethighView.addTextChangedListener(textWatch);
@@ -175,7 +170,7 @@ public class SimpleProfileFragment extends Fragment implements FragmentBase {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
- if (!MainApp.getConfigBuilder().isInitialized() || !MainApp.getConfigBuilder().getPumpDescription().isSetBasalProfileCapable) {
+ if (!MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended() || !MainApp.getConfigBuilder().getPumpDescription().isSetBasalProfileCapable) {
profileswitchButton.setVisibility(View.GONE);
} else {
profileswitchButton.setVisibility(View.VISIBLE);
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 dbe6345927..3264696feb 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
@@ -34,7 +34,6 @@ public class SimpleProfilePlugin implements PluginBase, ProfileInterface {
Double dia;
Double ic;
Double isf;
- Double car;
Double basal;
Double targetLow;
Double targetHigh;
@@ -58,6 +57,17 @@ public class SimpleProfilePlugin implements PluginBase, ProfileInterface {
return MainApp.instance().getString(R.string.simpleprofile);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.simpleprofile_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 == PROFILE && fragmentEnabled;
@@ -93,7 +103,6 @@ public class SimpleProfilePlugin implements PluginBase, ProfileInterface {
editor.putString("SimpleProfile" + "dia", dia.toString());
editor.putString("SimpleProfile" + "ic", ic.toString());
editor.putString("SimpleProfile" + "isf", isf.toString());
- editor.putString("SimpleProfile" + "car", car.toString());
editor.putString("SimpleProfile" + "basal", basal.toString());
editor.putString("SimpleProfile" + "targetlow", targetLow.toString());
editor.putString("SimpleProfile" + "targethigh", targetHigh.toString());
@@ -142,13 +151,6 @@ public class SimpleProfilePlugin implements PluginBase, ProfileInterface {
log.debug(e.getMessage());
}
else isf = 200d;
- if (settings.contains("SimpleProfile" + "car"))
- try {
- car = SafeParse.stringToDouble(settings.getString("SimpleProfile" + "car", "20"));
- } catch (Exception e) {
- log.debug(e.getMessage());
- }
- else car = 20d;
if (settings.contains("SimpleProfile" + "basal"))
try {
basal = SafeParse.stringToDouble(settings.getString("SimpleProfile" + "basal", "1"));
@@ -221,7 +223,6 @@ public class SimpleProfilePlugin implements PluginBase, ProfileInterface {
json.put("store", store);
profile.put("dia", dia);
profile.put("carbratio", new JSONArray().put(new JSONObject().put("timeAsSeconds", 0).put("value", ic)));
- profile.put("carbs_hr", car);
profile.put("sens", new JSONArray().put(new JSONObject().put("timeAsSeconds", 0).put("value", isf)));
profile.put("basal", new JSONArray().put(new JSONObject().put("timeAsSeconds", 0).put("value", basal)));
profile.put("target_low", new JSONArray().put(new JSONObject().put("timeAsSeconds", 0).put("value", targetLow)));
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 4f65995948..4097efcdf9 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
@@ -21,21 +21,24 @@ import info.nightscout.androidaps.Constants;
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.PumpEnactResult;
import info.nightscout.androidaps.db.BgReading;
-import info.nightscout.androidaps.db.DatabaseHelper;
import info.nightscout.androidaps.events.EventPreferenceChange;
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.androidaps.plugins.Loop.LoopPlugin;
-import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal;
+import info.nightscout.androidaps.data.IobTotal;
+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.utils.DecimalFormatter;
import info.nightscout.utils.SafeParse;
+import info.nightscout.utils.XdripCalibrations;
/**
* Created by mike on 05.08.2016.
@@ -61,6 +64,7 @@ public class SmsCommunicatorPlugin implements PluginBase {
String confirmCode;
double bolusRequested = 0d;
double tempBasal = 0d;
+ double calibrationRequested = 0d;
public Sms(SmsMessage message) {
phoneNumber = message.getOriginatingAddress();
@@ -92,6 +96,7 @@ public class SmsCommunicatorPlugin implements PluginBase {
Sms cancelTempBasalWaitingForConfirmation = null;
Sms tempBasalWaitingForConfirmation = null;
Sms bolusWaitingForConfirmation = null;
+ Sms calibrationWaitingForConfirmation = null;
Date lastRemoteBolusTime = new Date(0);
ArrayList messages = new ArrayList<>();
@@ -116,6 +121,17 @@ public class SmsCommunicatorPlugin implements PluginBase {
return MainApp.sResources.getString(R.string.smscommunicator);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.smscommunicator_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;
@@ -199,8 +215,8 @@ public class SmsCommunicatorPlugin implements PluginBase {
if (splited.length > 0) {
switch (splited[0].toUpperCase()) {
case "BG":
- BgReading actualBG = MainApp.getDbHelper().actualBg();
- BgReading lastBG = MainApp.getDbHelper().lastBg();
+ BgReading actualBG = GlucoseStatus.actualBg();
+ BgReading lastBG = GlucoseStatus.lastBg();
NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
String units = profile.getUnits();
@@ -213,16 +229,14 @@ public class SmsCommunicatorPlugin implements PluginBase {
} else if (lastBG != null) {
reply = MainApp.sResources.getString(R.string.sms_lastbg) + " " + lastBG.valueToUnitsToString(units) + " " + String.format(MainApp.sResources.getString(R.string.sms_minago), agoMin) + ", ";
}
- DatabaseHelper.GlucoseStatus glucoseStatus = MainApp.getDbHelper().getGlucoseStatusData();
+ GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData();
if (glucoseStatus != null)
reply += MainApp.sResources.getString(R.string.sms_delta) + " " + NSProfile.toUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units) + " " + units + ", ";
MainApp.getConfigBuilder().getActiveTreatments().updateTotalIOB();
IobTotal bolusIob = MainApp.getConfigBuilder().getActiveTreatments().getLastCalculation().round();
- if (bolusIob == null) bolusIob = new IobTotal();
MainApp.getConfigBuilder().getActiveTempBasals().updateTotalIOB();
IobTotal basalIob = MainApp.getConfigBuilder().getActiveTempBasals().getLastCalculation().round();
- if (basalIob == null) basalIob = new IobTotal();
reply += MainApp.sResources.getString(R.string.sms_iob) + " " + DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "U ("
+ MainApp.sResources.getString(R.string.sms_bolus) + " " + DecimalFormatter.to2Decimal(bolusIob.iob) + "U "
@@ -293,12 +307,12 @@ public class SmsCommunicatorPlugin implements PluginBase {
case "DANAR":
DanaRPlugin danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class);
if (danaRPlugin != null && danaRPlugin.isEnabled(PluginBase.PUMP)) {
- reply = danaRPlugin.shortStatus();
+ reply = danaRPlugin.shortStatus(true);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
DanaRKoreanPlugin danaRKoreanPlugin = (DanaRKoreanPlugin) MainApp.getSpecificPlugin(DanaRKoreanPlugin.class);
if (danaRKoreanPlugin != null && danaRKoreanPlugin.isEnabled(PluginBase.PUMP)) {
- reply = danaRKoreanPlugin.shortStatus();
+ reply = danaRKoreanPlugin.shortStatus(true);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
receivedSms.processed = true;
@@ -355,6 +369,23 @@ public class SmsCommunicatorPlugin implements PluginBase {
}
}
break;
+ case "CAL":
+ if (splited.length > 1) {
+ amount = SafeParse.stringToDouble(splited[1]);
+ boolean remoteCommandsAllowed = sharedPreferences.getBoolean("smscommunicator_remotecommandsallowed", false);
+ if (amount > 0d && remoteCommandsAllowed) {
+ passCode = generatePasscode();
+ reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_calibrationreplywithcode), amount, passCode);
+ receivedSms.processed = true;
+ resetWaitingMessages();
+ sendSMS(calibrationWaitingForConfirmation = new Sms(receivedSms.phoneNumber, reply, new Date(), passCode));
+ calibrationWaitingForConfirmation.calibrationRequested = amount;
+ } else {
+ reply = MainApp.sResources.getString(R.string.smscommunicator_remotecalibrationnotallowed);
+ sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
+ }
+ }
+ break;
default: // expect passCode here
if (bolusWaitingForConfirmation != null && !bolusWaitingForConfirmation.processed &&
bolusWaitingForConfirmation.confirmCode.equals(splited[0]) && new Date().getTime() - bolusWaitingForConfirmation.date.getTime() < CONFIRM_TIMEOUT) {
@@ -365,12 +396,12 @@ 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();
+ 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();
+ if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(true);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
}
@@ -383,11 +414,11 @@ 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();
+ 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();
+ if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(true);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
}
@@ -400,14 +431,25 @@ 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();
+ 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();
+ if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(true);
sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
}
}
+ } else if (calibrationWaitingForConfirmation != null && !calibrationWaitingForConfirmation.processed &&
+ calibrationWaitingForConfirmation.confirmCode.equals(splited[0]) && new Date().getTime() - calibrationWaitingForConfirmation.date.getTime() < CONFIRM_TIMEOUT) {
+ calibrationWaitingForConfirmation.processed = true;
+ boolean result = XdripCalibrations.sendIntent(calibrationWaitingForConfirmation.calibrationRequested);
+ if (result) {
+ reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_calibrationsent));
+ sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date()));
+ } else {
+ reply = MainApp.sResources.getString(R.string.smscommunicator_calibrationfailed);
+ sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date()));
+ }
} else {
sendSMS(new Sms(receivedSms.phoneNumber, MainApp.sResources.getString(R.string.smscommunicator_unknowncommand), new Date()));
}
@@ -437,8 +479,13 @@ public class SmsCommunicatorPlugin implements PluginBase {
SmsManager smsManager = SmsManager.getDefault();
sms.text = stripAccents(sms.text);
if (sms.text.length() > 140) sms.text = sms.text.substring(0, 139);
- smsManager.sendTextMessage(sms.phoneNumber, null, sms.text, null, null);
- messages.add(sms);
+ try {
+ smsManager.sendTextMessage(sms.phoneNumber, null, sms.text, null, null);
+ messages.add(sms);
+ } catch (IllegalArgumentException e) {
+ Notification notification = new Notification(Notification.INVALID_PHONE_NUMBER, MainApp.sResources.getString(R.string.smscommunicator_invalidphonennumber), Notification.NORMAL);
+ MainApp.bus().post(new EventNewNotification(notification));
+ }
}
private String generatePasscode() {
@@ -455,6 +502,7 @@ public class SmsCommunicatorPlugin implements PluginBase {
tempBasalWaitingForConfirmation = null;
cancelTempBasalWaitingForConfirmation = null;
bolusWaitingForConfirmation = null;
+ calibrationWaitingForConfirmation = null;
}
public static String stripAccents(String s) {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SourceMM640g/SourceMM640gPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SourceMM640g/SourceMM640gPlugin.java
index f7f0de23fb..b1d7a52cd0 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/SourceMM640g/SourceMM640gPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/SourceMM640g/SourceMM640gPlugin.java
@@ -27,6 +27,12 @@ public class SourceMM640gPlugin implements PluginBase, BgSourceInterface {
return MainApp.instance().getString(R.string.MM640g);
}
+ @Override
+ public String getNameShort() {
+ // use long name as fallback (no tabs)
+ return getName();
+ }
+
@Override
public boolean isEnabled(int type) {
return type == BGSOURCE && fragmentEnabled;
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SourceNSClient/SourceNSClientPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SourceNSClient/SourceNSClientPlugin.java
index f29acb293d..7e38e6dc47 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/SourceNSClient/SourceNSClientPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/SourceNSClient/SourceNSClientPlugin.java
@@ -26,6 +26,13 @@ public class SourceNSClientPlugin implements PluginBase, BgSourceInterface {
return MainApp.instance().getString(R.string.nsclient);
}
+ @Override
+ public String getNameShort() {
+ // use long name as fallback (not visible in tabs)
+ return getName();
+ }
+
+
@Override
public boolean isEnabled(int type) {
return type == BGSOURCE && fragmentEnabled;
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SourceXdrip/SourceXdripPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SourceXdrip/SourceXdripPlugin.java
index f2318580ea..a1a4f01b86 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/SourceXdrip/SourceXdripPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/SourceXdrip/SourceXdripPlugin.java
@@ -28,6 +28,12 @@ public class SourceXdripPlugin implements PluginBase, BgSourceInterface {
return MainApp.instance().getString(R.string.xdrip);
}
+ @Override
+ public String getNameShort() {
+ // use long name as fallback (no tabs)
+ return getName();
+ }
+
@Override
public boolean isEnabled(int type) {
return type == BGSOURCE && fragmentEnabled;
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsFragment.java
index f661cc4a5b..8317623fd2 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsFragment.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsFragment.java
@@ -3,6 +3,7 @@ package info.nightscout.androidaps.plugins.TempBasals;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
+import android.support.v4.content.ContextCompat;
import android.support.v7.widget.CardView;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
@@ -22,10 +23,10 @@ import java.util.List;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.db.TempBasal;
import info.nightscout.androidaps.events.EventTempBasalChange;
import info.nightscout.androidaps.interfaces.FragmentBase;
-import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal;
import info.nightscout.utils.DateUtil;
import info.nightscout.utils.DecimalFormatter;
@@ -82,13 +83,13 @@ public class TempBasalsFragment extends Fragment implements FragmentBase {
holder.netRatio.setText(DecimalFormatter.to2Decimal(iob.netRatio) + " U/h");
holder.extendedFlag.setVisibility(tempBasal.isExtended ? View.VISIBLE : View.GONE);
if (tempBasal.isInProgress())
- holder.dateLinearLayout.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.colorInProgress));
+ holder.dateLinearLayout.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.colorInProgress));
else if (tempBasal.timeEnd == null)
- holder.dateLinearLayout.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.colorNotEnded));
+ holder.dateLinearLayout.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.colorNotEnded));
else if (tempBasal.iobCalc(new Date()).basaliob != 0)
- holder.dateLinearLayout.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.colorAffectingIOB));
+ holder.dateLinearLayout.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.colorAffectingIOB));
else
- holder.dateLinearLayout.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.cardColorBackground));
+ holder.dateLinearLayout.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.cardColorBackground));
}
@Override
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsPlugin.java
index 87a73cb1df..058d5a7e0b 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsPlugin.java
@@ -5,9 +5,6 @@ import android.preference.PreferenceManager;
import android.support.annotation.Nullable;
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;
@@ -28,7 +25,7 @@ import info.nightscout.androidaps.events.EventPreferenceChange;
import info.nightscout.androidaps.events.EventTempBasalChange;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.TempBasalsInterface;
-import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal;
+import info.nightscout.androidaps.data.IobTotal;
/**
* Created by mike on 05.08.2016.
@@ -64,6 +61,17 @@ public class TempBasalsPlugin implements PluginBase, TempBasalsInterface {
return MainApp.instance().getString(R.string.tempbasals);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.tempbasals_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 == TEMPBASAL && fragmentEnabled && MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable;
@@ -95,44 +103,16 @@ public class TempBasalsPlugin implements PluginBase, TempBasalsInterface {
}
private void initializeData() {
- try {
- Dao dao = MainApp.getDbHelper().getDaoTempBasals();
-/*
- // **************** TESTING CREATE FAKE RECORD *****************
- TempBasal fake = new TempBasal();
- fake.timeStart = new Date(new Date().getTime() - 45 * 40 * 1000);
- fake.timeEnd = new Date(new Date().getTime() - new Double(Math.random() * 45d * 40 * 1000).longValue());
- fake.duration = 30;
- fake.percent = 150;
- fake.isAbsolute = false;
- fake.isExtended = false;
- dao.createOrUpdate(fake);
- // **************** TESTING CREATE FAKE RECORD *****************
-*/
- QueryBuilder queryBuilder = dao.queryBuilder();
- queryBuilder.orderBy("timeIndex", false);
- Where where = queryBuilder.where();
- where.eq("isExtended", false);
- queryBuilder.limit(30L);
- PreparedQuery preparedQuery = queryBuilder.prepare();
- tempBasals = dao.query(preparedQuery);
+ double dia = 3;
+ if (MainApp.getConfigBuilder().getActiveProfile() != null && MainApp.getConfigBuilder().getActiveProfile().getProfile() != null)
+ dia = MainApp.getConfigBuilder().getActiveProfile().getProfile().getDia();
+ long fromMills = (long) (new Date().getTime() - 60 * 60 * 1000L * (24 + dia));
+ tempBasals = MainApp.getDbHelper().getTempbasalsDataFromTime(fromMills, false, false);
+ extendedBoluses = MainApp.getDbHelper().getTempbasalsDataFromTime(fromMills, false, true);
- QueryBuilder queryBuilderExt = dao.queryBuilder();
- queryBuilderExt.orderBy("timeIndex", false);
- Where whereExt = queryBuilderExt.where();
- whereExt.eq("isExtended", true);
- queryBuilderExt.limit(30L);
- PreparedQuery preparedQueryExt = queryBuilderExt.prepare();
- extendedBoluses = dao.query(preparedQueryExt);
-
- // Update ended
- checkForExpiredExtended();
- checkForExpiredTemps();
- } catch (SQLException e) {
- log.debug(e.getMessage(), e);
- tempBasals = new ArrayList();
- extendedBoluses = new ArrayList();
- }
+ // Update ended
+ checkForExpiredExtended();
+ checkForExpiredTemps();
}
public void checkForExpiredTemps() {
@@ -197,23 +177,32 @@ public class TempBasalsPlugin implements PluginBase, TempBasalsInterface {
}
@Override
- public void updateTotalIOB() {
+ public IobTotal getCalculationToTime(long time) {
checkForExpired(tempBasals);
checkForExpired(extendedBoluses);
- Date now = new Date();
- IobTotal total = new IobTotal();
+ Date now = new Date(time);
+ IobTotal total = new IobTotal(time);
for (Integer pos = 0; pos < tempBasals.size(); pos++) {
TempBasal t = tempBasals.get(pos);
+ if (t.timeStart.getTime() > time) continue;
IobTotal calc = t.iobCalc(now);
total.plus(calc);
}
if (useExtendedBoluses) {
for (Integer pos = 0; pos < extendedBoluses.size(); pos++) {
TempBasal t = extendedBoluses.get(pos);
+ if (t.timeStart.getTime() > time) continue;
IobTotal calc = t.iobCalc(now);
total.plus(calc);
}
}
+ return total;
+ }
+
+ @Override
+ public void updateTotalIOB() {
+ IobTotal total = getCalculationToTime(new Date().getTime());
+
lastCalculationTimestamp = new Date().getTime();
lastCalculation = total;
}
@@ -237,6 +226,17 @@ public class TempBasalsPlugin implements PluginBase, TempBasalsInterface {
return null;
}
+ @Override
+ public long oldestDataAvaialable() {
+ long oldestTemp = new Date().getTime();
+ if (tempBasals.size() > 0)
+ oldestTemp = Math.min(oldestTemp, tempBasals.get(tempBasals.size() - 1).timeStart.getTime());
+ if (extendedBoluses.size() > 0)
+ oldestTemp = Math.min(oldestTemp, extendedBoluses.get(extendedBoluses.size() - 1).timeStart.getTime());
+ oldestTemp -= 15 * 60 * 1000L; // allow 15 min before
+ return oldestTemp;
+ }
+
List getMergedList() {
if (useExtendedBoluses) {
List merged = new ArrayList();
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
new file mode 100644
index 0000000000..4bfe4ca74e
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangeFragment.java
@@ -0,0 +1,249 @@
+package info.nightscout.androidaps.plugins.TempTargetRange;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.graphics.Paint;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.support.v4.app.Fragment;
+import android.support.v4.content.ContextCompat;
+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.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.j256.ormlite.dao.Dao;
+import com.squareup.otto.Subscribe;
+
+import java.sql.SQLException;
+import java.util.List;
+
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.Services.Intents;
+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.utils.DateUtil;
+import info.nightscout.utils.DecimalFormatter;
+import info.nightscout.utils.ToastUtils;
+
+/**
+ * Created by mike on 13/01/17.
+ */
+
+public class TempTargetRangeFragment extends Fragment implements View.OnClickListener, FragmentBase {
+
+ private static TempTargetRangePlugin tempTargetRangePlugin = new TempTargetRangePlugin();
+
+ public static TempTargetRangePlugin getPlugin() {
+ return tempTargetRangePlugin;
+ }
+
+ RecyclerView recyclerView;
+ LinearLayoutManager llm;
+ Button refreshFromNS;
+
+ Context context;
+
+ public class RecyclerViewAdapter extends RecyclerView.Adapter {
+
+ List tempTargetList;
+
+ RecyclerViewAdapter(List TempTargetList) {
+ this.tempTargetList = TempTargetList;
+ }
+
+ @Override
+ public TempTargetsViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
+ View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.temptargetrange_item, viewGroup, false);
+ TempTargetsViewHolder TempTargetsViewHolder = new TempTargetsViewHolder(v);
+ return TempTargetsViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(TempTargetsViewHolder holder, int position) {
+ NSProfile profile = ConfigBuilderPlugin.getActiveProfile().getProfile();
+ if (profile == null) return;
+ TempTarget tempTarget = tempTargetList.get(position);
+ if (tempTarget.duration != 0) {
+ holder.date.setText(DateUtil.dateAndTimeString(tempTarget.timeStart) + " - " + DateUtil.timeString(tempTargetList.get(position).getPlannedTimeEnd()));
+ holder.duration.setText(DecimalFormatter.to0Decimal(tempTarget.duration) + " min");
+ holder.low.setText(tempTarget.lowValueToUnitsToString(profile.getUnits()));
+ holder.high.setText(tempTarget.highValueToUnitsToString(profile.getUnits()));
+ holder.reason.setText(tempTarget.reason);
+ } else {
+ holder.date.setText(DateUtil.dateAndTimeString(tempTarget.timeStart));
+ holder.duration.setText(R.string.cancel);
+ holder.low.setText("");
+ holder.high.setText("");
+ holder.reason.setText("");
+ holder.reasonLabel.setText("");
+ holder.reasonColon.setText("");
+ }
+ if (tempTarget.isInProgress())
+ holder.dateLinearLayout.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.colorInProgress));
+ else
+ holder.dateLinearLayout.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.cardColorBackground));
+ holder.remove.setTag(tempTarget);
+ }
+
+ @Override
+ public int getItemCount() {
+ return tempTargetList.size();
+ }
+
+ @Override
+ public void onAttachedToRecyclerView(RecyclerView recyclerView) {
+ super.onAttachedToRecyclerView(recyclerView);
+ }
+
+ public class TempTargetsViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
+ CardView cv;
+ TextView date;
+ TextView duration;
+ TextView low;
+ TextView high;
+ TextView reason;
+ TextView reasonLabel;
+ TextView reasonColon;
+ TextView remove;
+ LinearLayout dateLinearLayout;
+
+ TempTargetsViewHolder(View itemView) {
+ super(itemView);
+ cv = (CardView) itemView.findViewById(R.id.temptargetrange_cardview);
+ date = (TextView) itemView.findViewById(R.id.temptargetrange_date);
+ duration = (TextView) itemView.findViewById(R.id.temptargetrange_duration);
+ low = (TextView) itemView.findViewById(R.id.temptargetrange_low);
+ high = (TextView) itemView.findViewById(R.id.temptargetrange_high);
+ reason = (TextView) itemView.findViewById(R.id.temptargetrange_reason);
+ reasonLabel = (TextView) itemView.findViewById(R.id.temptargetrange_reason_label);
+ reasonColon = (TextView) itemView.findViewById(R.id.temptargetrange_reason_colon);
+ remove = (TextView) itemView.findViewById(R.id.temptargetrange_remove);
+ remove.setOnClickListener(this);
+ remove.setPaintFlags(remove.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
+ dateLinearLayout = (LinearLayout) itemView.findViewById(R.id.temptargetrange_datelinearlayout);
+ }
+
+ @Override
+ public void onClick(View v) {
+ final TempTarget tempTarget = (TempTarget) v.getTag();
+ final Context finalContext = context;
+ switch (v.getId()) {
+ case R.id.temptargetrange_remove:
+ AlertDialog.Builder builder = new AlertDialog.Builder(context);
+ builder.setTitle(MainApp.sResources.getString(R.string.confirmation));
+ builder.setMessage(MainApp.sResources.getString(R.string.removerecord) + "\n" + DateUtil.dateAndTimeString(tempTarget.timeStart));
+ builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ final String _id = tempTarget._id;
+ if (_id != null && !_id.equals("")) {
+ MainApp.getConfigBuilder().removeCareportalEntryFromNS(_id);
+ }
+ try {
+ Dao daoTempTargets = MainApp.getDbHelper().getDaoTempTargets();
+ daoTempTargets.delete(tempTarget);
+ MainApp.bus().post(new EventTempTargetRangeChange());
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null);
+ builder.show();
+ break;
+ }
+ }
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ View view = inflater.inflate(R.layout.temptargetrange_fragment, container, false);
+
+ recyclerView = (RecyclerView) view.findViewById(R.id.temptargetrange_recyclerview);
+ recyclerView.setHasFixedSize(true);
+ llm = new LinearLayoutManager(view.getContext());
+ recyclerView.setLayoutManager(llm);
+
+ RecyclerViewAdapter adapter = new RecyclerViewAdapter(tempTargetRangePlugin.getList());
+ recyclerView.setAdapter(adapter);
+
+ refreshFromNS = (Button) view.findViewById(R.id.temptargetrange_refreshfromnightscout);
+ refreshFromNS.setOnClickListener(this);
+
+ context = getContext();
+
+ updateGUI();
+ return view;
+ }
+
+ @Override
+ public void onClick(View view) {
+ switch (view.getId()) {
+ case R.id.temptargetrange_refreshfromnightscout:
+ SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getContext());
+ boolean nsUploadOnly = SP.getBoolean("ns_upload_only", false);
+ if (nsUploadOnly) {
+ ToastUtils.showToastInUiThread(getContext(), this.getContext().getString(R.string.ns_upload_only_enabled));
+ } else {
+ AlertDialog.Builder builder = new AlertDialog.Builder(this.getContext());
+ builder.setTitle(this.getContext().getString(R.string.confirmation));
+ builder.setMessage(this.getContext().getString(R.string.refreshtemptargetsfromnightscout));
+ builder.setPositiveButton(this.getContext().getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ MainApp.getDbHelper().resetTempTargets();
+ tempTargetRangePlugin.initializeData();
+ updateGUI();
+ Intent restartNSClient = new Intent(Intents.ACTION_RESTART);
+ MainApp.instance().getApplicationContext().sendBroadcast(restartNSClient);
+ }
+ });
+ builder.setNegativeButton(this.getContext().getString(R.string.cancel), null);
+ builder.show();
+ }
+ break;
+ }
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ MainApp.bus().unregister(this);
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ MainApp.bus().register(this);
+ }
+
+ @Subscribe
+ public void onStatusEvent(final EventTempTargetRangeChange ev) {
+ updateGUI();
+ }
+
+ void updateGUI() {
+ Activity activity = getActivity();
+ if (activity != null)
+ activity.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ recyclerView.swapAdapter(new RecyclerViewAdapter(tempTargetRangePlugin.getList()), false);
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangePlugin.java
new file mode 100644
index 0000000000..08a09aa644
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangePlugin.java
@@ -0,0 +1,114 @@
+package info.nightscout.androidaps.plugins.TempTargetRange;
+
+import android.support.annotation.Nullable;
+
+import com.squareup.otto.Subscribe;
+
+import java.util.Date;
+import java.util.List;
+
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.db.TempTarget;
+import info.nightscout.androidaps.interfaces.PluginBase;
+import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange;
+
+/**
+ * Created by mike on 13/01/17.
+ */
+
+public class TempTargetRangePlugin implements PluginBase {
+
+ static boolean fragmentEnabled = true;
+ static boolean fragmentVisible = true;
+
+ private static List tempTargets;
+
+ TempTargetRangePlugin() {
+ initializeData();
+ MainApp.bus().register(this);
+ }
+
+ @Override
+ public int getType() {
+ return PluginBase.GENERAL;
+ }
+
+ @Override
+ public String getFragmentClass() {
+ return TempTargetRangeFragment.class.getName();
+ }
+
+ @Override
+ public String getName() {
+ return MainApp.sResources.getString(R.string.temptargetrange);
+ }
+
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.temptargetrange_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;
+ }
+
+ public static boolean isEnabled() {
+ return fragmentEnabled;
+ }
+
+ @Subscribe
+ public void onStatusEvent(final EventTempTargetRangeChange ev) {
+ initializeData();
+ }
+
+ public void initializeData() {
+ long fromMills = (long) (new Date().getTime() - 60 * 60 * 1000L * 24);
+ tempTargets = MainApp.getDbHelper().getTemptargetsDataFromTime(fromMills, false);
+ }
+
+ public List getList() {
+ return tempTargets;
+ }
+
+ @Nullable
+ public TempTarget getTempTargetInProgress(long time) {
+ for (int i = 0; i < tempTargets.size(); i++) {
+ // a zero-duration temp target will cancel all prior targets
+ if (tempTargets.get(i).duration == 0) return null;
+
+ if (tempTargets.get(i).timeStart.getTime() > time) continue;
+ if (tempTargets.get(i).getPlannedTimeEnd().getTime() >= time) return tempTargets.get(i);
+ }
+ return null;
+ }
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/events/EventTempTargetRangeChange.java b/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/events/EventTempTargetRangeChange.java
new file mode 100644
index 0000000000..8d5f537fec
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/events/EventTempTargetRangeChange.java
@@ -0,0 +1,8 @@
+package info.nightscout.androidaps.plugins.TempTargetRange.events;
+
+/**
+ * Created by mike on 13.01.2017.
+ */
+
+public class EventTempTargetRangeChange {
+}
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 818d33f245..38a4904b56 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
@@ -1,12 +1,15 @@
package info.nightscout.androidaps.plugins.Treatments;
import android.app.Activity;
+import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.graphics.Paint;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
+import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.CardView;
import android.support.v7.widget.LinearLayoutManager;
@@ -54,7 +57,9 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener
TextView activityTotal;
Button refreshFromNS;
- public static class RecyclerViewAdapter extends RecyclerView.Adapter {
+ Context context;
+
+ public class RecyclerViewAdapter extends RecyclerView.Adapter {
List treatments;
@@ -84,9 +89,10 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener
holder.activity.setText(DecimalFormatter.to3Decimal(iob.activityContrib) + " U");
holder.mealOrCorrection.setText(treatments.get(position).mealBolus ? MainApp.sResources.getString(R.string.mealbolus) : MainApp.sResources.getString(R.string.correctionbous));
if (iob.iobContrib != 0)
- holder.dateLinearLayout.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.colorAffectingIOB));
+ holder.dateLinearLayout.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.colorAffectingIOB));
else
- holder.dateLinearLayout.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.cardColorBackground));
+ holder.dateLinearLayout.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.cardColorBackground));
+ holder.remove.setTag(treatments.get(position));
}
@Override
@@ -99,7 +105,7 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener
super.onAttachedToRecyclerView(recyclerView);
}
- public static class TreatmentsViewHolder extends RecyclerView.ViewHolder {
+ public class TreatmentsViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
CardView cv;
TextView date;
TextView insulin;
@@ -108,6 +114,7 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener
TextView activity;
TextView mealOrCorrection;
LinearLayout dateLinearLayout;
+ TextView remove;
TreatmentsViewHolder(View itemView) {
super(itemView);
@@ -119,6 +126,35 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener
activity = (TextView) itemView.findViewById(R.id.treatments_activity);
mealOrCorrection = (TextView) itemView.findViewById(R.id.treatments_mealorcorrection);
dateLinearLayout = (LinearLayout) itemView.findViewById(R.id.treatments_datelinearlayout);
+ remove = (TextView) itemView.findViewById(R.id.treatments_remove);
+ remove.setOnClickListener(this);
+ remove.setPaintFlags(remove.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
+ }
+
+ @Override
+ public void onClick(View v) {
+ final Treatment treatment = (Treatment) v.getTag();
+ final Context finalContext = context;
+ switch (v.getId()) {
+ case R.id.treatments_remove:
+ AlertDialog.Builder builder = new AlertDialog.Builder(context);
+ builder.setTitle(MainApp.sResources.getString(R.string.confirmation));
+ builder.setMessage(MainApp.sResources.getString(R.string.removerecord) + "\n" + DateUtil.dateAndTimeString(treatment.created_at));
+ builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ final String _id = treatment._id;
+ if (_id != null && !_id.equals("")) {
+ MainApp.getConfigBuilder().removeCareportalEntryFromNS(_id);
+ }
+ MainApp.getDbHelper().delete(treatment);
+ treatmentsPlugin.initializeData();
+ updateGUI();
+ }
+ });
+ builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null);
+ builder.show();
+ break;
+ }
}
}
}
@@ -142,6 +178,8 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener
refreshFromNS = (Button) view.findViewById(R.id.treatments_reshreshfromnightscout);
refreshFromNS.setOnClickListener(this);
+ context = getContext();
+
updateGUI();
return view;
}
@@ -152,12 +190,12 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener
case R.id.treatments_reshreshfromnightscout:
SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean nsUploadOnly = SP.getBoolean("ns_upload_only", false);
- if(nsUploadOnly){
- ToastUtils.showToastInUiThread(getContext(),this.getContext().getString(R.string.ns_upload_only_enabled));
+ if (nsUploadOnly) {
+ ToastUtils.showToastInUiThread(getContext(), this.getContext().getString(R.string.ns_upload_only_enabled));
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(this.getContext());
builder.setTitle(this.getContext().getString(R.string.confirmation));
- builder.setMessage(this.getContext().getString(R.string.refreshfromnightscout));
+ builder.setMessage(this.getContext().getString(R.string.refreshtreatmentsfromnightscout));
builder.setPositiveButton(this.getContext().getString(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MainApp.getDbHelper().resetTreatments();
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 d26b6d0b8c..966a5e7578 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,12 @@
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;
@@ -13,15 +17,19 @@ 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;
+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.plugins.OpenAPSMA.IobTotal;
+import info.nightscout.androidaps.data.IobTotal;
+import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.client.data.NSProfile;
+import info.nightscout.utils.SafeParse;
/**
* Created by mike on 05.08.2016.
@@ -47,6 +55,17 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface {
return MainApp.instance().getString(R.string.treatments);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.treatments_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 == TREATMENT && fragmentEnabled;
@@ -83,17 +102,11 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface {
}
public void initializeData() {
- try {
- Dao dao = MainApp.getDbHelper().getDaoTreatments();
- QueryBuilder queryBuilder = dao.queryBuilder();
- queryBuilder.orderBy("timeIndex", false);
- queryBuilder.limit(30l);
- PreparedQuery preparedQuery = queryBuilder.prepare();
- treatments = dao.query(preparedQuery);
- } catch (SQLException e) {
- log.debug(e.getMessage(), e);
- treatments = new ArrayList();
- }
+ double dia = 3;
+ if (MainApp.getConfigBuilder().getActiveProfile() != null && MainApp.getConfigBuilder().getActiveProfile().getProfile() != null)
+ dia = MainApp.getConfigBuilder().getActiveProfile().getProfile().getDia();
+ long fromMills = (long) (new Date().getTime() - 60 * 60 * 1000L * (24 + dia));
+ treatments = MainApp.getDbHelper().getTreatmentDataFromTime(fromMills, false);
}
/*
@@ -111,57 +124,45 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface {
}
@Override
- public void updateTotalIOB() {
- IobTotal total = new IobTotal();
+ public IobTotal getCalculationToTime(long time) {
+ SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext());
+ IobTotal total = new IobTotal(time);
- if (MainApp.getConfigBuilder() == null || MainApp.getConfigBuilder().getActiveProfile() == null) // app not initialized yet
- return;
- NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
- if (profile == null) {
- lastCalculation = total;
- return;
- }
+ if (MainApp.getConfigBuilder() == null || ConfigBuilderPlugin.getActiveProfile() == null) // app not initialized yet
+ return total;
+ NSProfile profile = ConfigBuilderPlugin.getActiveProfile().getProfile();
+ if (profile == null)
+ return total;
Double dia = profile.getDia();
- Date now = new Date();
+ Date now = new Date(time);
for (Integer pos = 0; pos < treatments.size(); pos++) {
Treatment t = treatments.get(pos);
+ if (t.created_at.getTime() > time) continue;
Iob tIOB = t.iobCalc(now, dia);
total.iob += tIOB.iobContrib;
total.activity += tIOB.activityContrib;
- Iob bIOB = t.iobCalc(now, dia / 2);
+ Iob bIOB = t.iobCalc(now, dia / SafeParse.stringToInt(SP.getString("openapsama_bolussnooze_dia_divisor", "2")));
total.bolussnooze += bIOB.iobContrib;
}
+ return total;
+ }
+
+ @Override
+ public void updateTotalIOB() {
+ IobTotal total = getCalculationToTime(new Date().getTime());
lastCalculationTimestamp = new Date().getTime();
lastCalculation = total;
}
- public class MealData {
- public double boluses = 0d;
- public double carbs = 0d;
- }
-
@Override
public MealData getMealData() {
MealData result = new MealData();
- NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
- if (profile == null)
- return result;
for (Treatment treatment : treatments) {
- long now = new Date().getTime();
- long dia_ago = now - (new Double(profile.getDia() * 60 * 60 * 1000l)).longValue();
- long t = treatment.created_at.getTime();
- if (t > dia_ago && t <= now) {
- if (treatment.carbs >= 1) {
- result.carbs += treatment.carbs;
- }
- if (treatment.insulin >= 0.1 && treatment.mealBolus) {
- result.boluses += treatment.insulin;
- }
- }
+ result.addTreatment(treatment);
}
return result;
}
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 37e8c30b4c..e90916122f 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
@@ -1,6 +1,8 @@
package info.nightscout.androidaps.plugins.VirtualPump;
import android.content.Context;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
import org.json.JSONException;
import org.json.JSONObject;
@@ -78,6 +80,17 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface {
return MainApp.instance().getString(R.string.virtualpump);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.virtualpump_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 == PUMP && fragmentEnabled;
@@ -113,6 +126,16 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface {
return true;
}
+ @Override
+ public boolean isSuspended() {
+ return false;
+ }
+
+ @Override
+ public boolean isBusy() {
+ return false;
+ }
+
@Override
public boolean isTempBasalInProgress() {
return getTempBasal() != null;
@@ -134,6 +157,16 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface {
return false;
}
+ @Override
+ public Date lastStatusTime() {
+ return new Date();
+ }
+
+ @Override
+ public void updateStatus(String reason) {
+ // do nothing
+ }
+
@Override
public double getBaseBasalRate() {
NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
@@ -370,6 +403,10 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface {
@Override
public JSONObject getJSONStatus() {
+ SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext());
+ if (!preferences.getBoolean("virtualpump_uploadstatus", false)) {
+ return null;
+ }
JSONObject pump = new JSONObject();
JSONObject battery = new JSONObject();
JSONObject status = new JSONObject();
@@ -409,4 +446,9 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface {
return pumpDescription;
}
+ @Override
+ public String shortStatus(boolean veryShort) {
+ return "Virtual Pump";
+ }
+
}
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
new file mode 100644
index 0000000000..8b24be7979
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java
@@ -0,0 +1,433 @@
+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;
+
+import info.nightscout.androidaps.BuildConfig;
+import info.nightscout.androidaps.Config;
+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.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.utils.BolusWizard;
+import info.nightscout.utils.DateUtil;
+import info.nightscout.utils.DecimalFormatter;
+import info.nightscout.utils.SafeParse;
+import info.nightscout.utils.ToastUtils;
+
+/**
+ * Created by adrian on 09/02/17.
+ */
+
+public class ActionStringHandler {
+
+ public static final int TIMEOUT = 65 * 1000;
+
+ private static long lastSentTimestamp = 0;
+ 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();
+ }
+
+ public synchronized static void handleInitiate(String actionstring){
+
+ if(!BuildConfig.WEAR_CONTROL) return;
+
+
+ lastBolusWizard = null;
+
+ String rTitle = "CONFIRM"; //TODO: i18n
+ String rMessage = "";
+ String rAction = "";
+
+
+ // do the parsing and check constraints
+ String[] act = actionstring.split("\\s+");
+
+ if ("fillpreset".equals(act[0])) {
+ ///////////////////////////////////// PRIME/FILL
+ double amount = 0d;
+ if ("1".equals(act[1])) {
+ amount = SafeParse.stringToDouble(DecimalFormatter.to2Decimal(SafeParse.stringToDouble(sp.getString("fill_button1", "0.3"))));
+ } else if ("2".equals(act[1])) {
+ amount = SafeParse.stringToDouble(DecimalFormatter.to2Decimal(SafeParse.stringToDouble(sp.getString("fill_button2", "0"))));
+ } else if ("3".equals(act[1])) {
+ amount = SafeParse.stringToDouble(DecimalFormatter.to2Decimal(SafeParse.stringToDouble(sp.getString("fill_button3", "0"))));
+ } else {
+ return;
+ }
+ Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(amount);
+ rMessage += MainApp.instance().getString(R.string.primefill) + ": " + insulinAfterConstraints + "U";
+ if (insulinAfterConstraints - amount != 0)
+ rMessage += "\n" + MainApp.instance().getString(R.string.constraintapllied);
+
+ rAction += "fill " + insulinAfterConstraints;
+
+ } else if ("fill".equals(act[0])) {
+ ////////////////////////////////////////////// PRIME/FILL
+ double amount = SafeParse.stringToDouble(act[1]);
+
+ Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(amount);
+ rMessage += MainApp.instance().getString(R.string.primefill) + ": " + insulinAfterConstraints + "U";
+ if (insulinAfterConstraints - amount != 0)
+ rMessage += "\n" + MainApp.instance().getString(R.string.constraintapllied);
+
+ rAction += "fill " + insulinAfterConstraints;
+
+ } else if ("bolus".equals(act[0])) {
+ ////////////////////////////////////////////// BOLUS
+ double insulin = SafeParse.stringToDouble(act[1]);
+ int carbs = SafeParse.stringToInt(act[2]);
+ Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(insulin);
+ Integer carbsAfterConstraints = MainApp.getConfigBuilder().applyCarbsConstraints(carbs);
+ rMessage += MainApp.instance().getString(R.string.bolus) + ": " + insulinAfterConstraints + "U\n";
+ rMessage += MainApp.instance().getString(R.string.carbs) + ": " + carbsAfterConstraints + "g";
+
+ if ((insulinAfterConstraints - insulin != 0) || (carbsAfterConstraints - carbs != 0)) {
+ rMessage += "\n" + MainApp.instance().getString(R.string.constraintapllied);
+ }
+ rAction += "bolus " + insulinAfterConstraints + " " + carbsAfterConstraints;
+
+ } else if ("temptarget".equals(act[0])) {
+ ///////////////////////////////////////////////////////// TEMPTARGET
+ boolean isMGDL = Boolean.parseBoolean(act[1]);
+
+ NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
+ TempTargetRangePlugin tempTargetRangePlugin = (TempTargetRangePlugin) MainApp.getSpecificPlugin(TempTargetRangePlugin.class);
+ if (!(Config.APS && tempTargetRangePlugin != null && tempTargetRangePlugin.isEnabled(PluginBase.GENERAL))) {
+ sendError("TempTargets not possible! Please check your configuration.");
+ return;
+ }
+ if (profile == null) {
+ sendError("No profile found!");
+ return;
+ }
+ if(profile.getUnits().equals(Constants.MGDL) != isMGDL){
+ sendError("Different units used on watch and phone!");
+ return;
+ }
+
+ int duration = SafeParse.stringToInt(act[2]);
+ if (duration == 0){
+ rMessage += "Zero-Temp-Target - cancelling running Temp-Targets?";
+ rAction = "temptarget true 0 0 0";
+ } else {
+ double low = SafeParse.stringToDouble(act[3]);
+ double high = SafeParse.stringToDouble(act[4]);
+ if(!isMGDL){
+ low *= Constants.MMOLL_TO_MGDL;
+ high *= Constants.MMOLL_TO_MGDL;
+ }
+ if (low < Constants.VERY_HARD_LIMIT_TEMP_MIN_BG[0] || low > Constants.VERY_HARD_LIMIT_TEMP_MIN_BG[1]) {
+ sendError("Min-BG out of range!");
+ return;
+ }
+ if (high < Constants.VERY_HARD_LIMIT_TEMP_MAX_BG[0] || high > Constants.VERY_HARD_LIMIT_TEMP_MAX_BG[1]) {
+ sendError("Max-BG out of range!");
+ return;
+ }
+ rMessage += "Temptarget:\nMin: " + act[3] + "\nMax: " + act[4] + "\nDuration: " + act[2];
+ rAction = actionstring;
+
+ }
+
+ } else if ("status".equals(act[0])) {
+ ////////////////////////////////////////////// STATUS
+ rTitle = "STATUS";
+ rAction = "statusmessage";
+ if("pump".equals(act[1])){
+ rTitle += " PUMP";
+ rMessage = getPumpStatus();
+ } else if("loop".equals(act[1])){
+ rTitle += " LOOP";
+ rMessage = getLoopStatus();
+
+ } else if("targets".equals(act[1])){
+ rTitle += " TARGETS";
+ rMessage = getTargetsStatus();
+ }
+
+ } else if ("wizard".equals(act[0])) {
+ ////////////////////////////////////////////// WIZARD
+ Integer carbsBeforeConstraints = SafeParse.stringToInt(act[1]);
+ Integer carbsAfterConstraints = MainApp.getConfigBuilder().applyCarbsConstraints(carbsBeforeConstraints);
+
+ if(carbsAfterConstraints - carbsBeforeConstraints !=0){
+ sendError("Carb constraint violation!"); return;
+ }
+
+ boolean useBG = Boolean.parseBoolean(act[2]);
+ boolean useBolusIOB = Boolean.parseBoolean(act[3]);
+ boolean useBasalIOB = Boolean.parseBoolean(act[4]);
+
+ NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
+ if (profile == null) {
+ sendError("No profile found!"); return;
+ }
+
+ BgReading bgReading = GlucoseStatus.actualBg();
+ if(bgReading==null && useBG){
+ sendError("No recent BG to base calculation on!"); return;
+ }
+ DecimalFormat format = new DecimalFormat("0.00");
+ BolusWizard bolusWizard = new BolusWizard();
+ bolusWizard.doCalc(profile.getDefaultProfile(), carbsAfterConstraints, useBG?bgReading.valueToUnits(profile.getUnits()):0d, 0d, useBolusIOB, useBasalIOB);
+
+ Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(bolusWizard.calculatedTotalInsulin);
+ if(insulinAfterConstraints - bolusWizard.calculatedTotalInsulin !=0){
+ sendError("Insulin contraint violation!" +
+ "\nCannot deliver " + format.format(bolusWizard.calculatedTotalInsulin) +"!");
+ return;
+ }
+
+
+ double insulin = bolusWizard.calculatedTotalInsulin;
+ if(bolusWizard.calculatedTotalInsulin < 0) {
+ bolusWizard.calculatedTotalInsulin = 0d;
+ }
+
+ if(bolusWizard.calculatedTotalInsulin <=0 && bolusWizard.carbs <=0){
+ rAction = "info";
+ rTitle = "INFO";
+ } else {
+ rAction = actionstring;
+ }
+ rMessage += "Carbs: " + bolusWizard.carbs + "g";
+ rMessage += "\nBolus: " + format.format(bolusWizard.calculatedTotalInsulin) + "U";
+ rMessage += "\n_____________";
+ rMessage += "\nCalc (IC:" + DecimalFormatter.to1Decimal(bolusWizard.ic) + ", " + "ISF:" + DecimalFormatter.to1Decimal(bolusWizard.sens) + "): ";
+ rMessage += "\nFrom Carbs: " + format.format(bolusWizard.insulinFromCarbs) + "U";
+ if(useBG)rMessage += "\nFrom BG: " + format.format(bolusWizard.insulinFromBG) + "U";
+ if(useBolusIOB)rMessage += "\nBolus IOB: " + format.format(bolusWizard.insulingFromBolusIOB) + "U";
+ if(useBasalIOB)rMessage += "\nBasal IOB: " + format.format(bolusWizard.insulingFromBasalsIOB) + "U";
+
+ lastBolusWizard = bolusWizard;
+
+ } else return;
+
+ // send result
+ WearFragment.getPlugin(MainApp.instance()).requestActionConfirmation(rTitle, rMessage, rAction);
+ lastSentTimestamp = System.currentTimeMillis();
+ lastConfirmActionString = rAction;
+ }
+
+ @NonNull
+ private static String getPumpStatus() {
+ return MainApp.getConfigBuilder().shortStatus(false);
+ }
+
+ @NonNull
+ private static String getLoopStatus() {
+ String ret = "";
+ // decide if enabled/disabled closed/open; what Plugin as APS?
+ final LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop();
+ if(activeloop != null && activeloop.isEnabled(activeloop.getType())) {
+ if (MainApp.getConfigBuilder().isClosedModeEnabled()) {
+ ret += "CLOSED LOOP\n";
+ } else {
+ ret += "OPEN LOOP\n";
+ }
+ final APSInterface aps = MainApp.getConfigBuilder().getActiveAPS();
+ ret += "APS: " + ((aps==null)?"NO APS SELECTED!":((PluginBase) aps).getName());
+ if(activeloop.lastRun != null){
+ if(activeloop.lastRun.lastAPSRun != null)
+ ret += "\nLast Run: " + DateUtil.timeString(activeloop.lastRun.lastAPSRun);
+
+ if(activeloop.lastRun.lastEnact != null)
+ ret += "\nLast Enact: " + DateUtil.timeString(activeloop.lastRun.lastEnact);
+
+ }
+
+
+
+ } else {
+ ret += "LOOP DISABLED\n";
+ }
+ return ret;
+
+ }
+
+ @NonNull
+ private static String getTargetsStatus() {
+ String ret = "";
+ if (!Config.APS){
+ return "Targets only apply in APS mode!";
+ }
+ NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
+ if (profile == null){
+ return "No profile set :(";
+ }
+
+ //Check for Temp-Target:
+ TempTargetRangePlugin tempTargetRangePlugin = (TempTargetRangePlugin) MainApp.getSpecificPlugin(TempTargetRangePlugin.class);
+ if (Config.APS && tempTargetRangePlugin != null && tempTargetRangePlugin.isEnabled(PluginBase.GENERAL)) {
+ TempTarget tempTarget = tempTargetRangePlugin.getTempTargetInProgress(new Date().getTime());
+ if (tempTarget != null) {
+ ret += "Temp Target: " + NSProfile.toUnitsString(tempTarget.low, NSProfile.fromMgdlToUnits(tempTarget.low, profile.getUnits()), profile.getUnits()) + " - " + NSProfile.toUnitsString(tempTarget.high, NSProfile.fromMgdlToUnits(tempTarget.high, profile.getUnits()), profile.getUnits());
+ ret += "\nuntil: " + DateUtil.timeString(tempTarget.getPlannedTimeEnd());
+ ret += "\n\n";
+ }
+ }
+
+ //Default Range/Target
+ String maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL;
+ String minBgDefault = Constants.MIN_BG_DEFAULT_MGDL;
+ String 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);
+ return ret;
+ }
+
+
+ public synchronized static void handleConfirmation(String actionString){
+
+ if(!BuildConfig.WEAR_CONTROL) return;
+
+
+ //Guard from old or duplicate confirmations
+ if (lastConfirmActionString == null) return;
+ if (!lastConfirmActionString.equals(actionString)) return;
+ if (System.currentTimeMillis() - lastSentTimestamp > TIMEOUT) return;
+ lastConfirmActionString = null;
+
+ // do the parsing, check constraints and enact!
+ String[] act = actionString.split("\\s+");
+
+ if ("fill".equals(act[0])){
+ Double amount = SafeParse.stringToDouble(act[1]);
+ Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(amount);
+ if(amount - insulinAfterConstraints != 0){
+ ToastUtils.showToastInUiThread(MainApp.instance(), "aborting: previously applied constraint changed");
+ sendError("aborting: previously applied constraint changed");
+ return;
+ }
+ doFillBolus(amount);
+ } else if ("temptarget".equals(act[0])) {
+ int duration = SafeParse.stringToInt(act[2]);
+ double low = SafeParse.stringToDouble(act[3]);
+ double high = SafeParse.stringToDouble(act[4]);
+ boolean isMGDL = Boolean.parseBoolean(act[1]);
+ if(!isMGDL){
+ low *= Constants.MMOLL_TO_MGDL;
+ high *= Constants.MMOLL_TO_MGDL;
+ }
+ generateTempTarget(duration, low, high);
+ } else if ("wizard".equals(act[0])){
+ //use last calculation as confirmed string matches
+
+ doBolus(lastBolusWizard.calculatedTotalInsulin, lastBolusWizard.carbs);
+ lastBolusWizard = null;
+ } else if ("bolus".equals(act[0])) {
+ double insulin = SafeParse.stringToDouble(act[1]);
+ int carbs = SafeParse.stringToInt(act[2]);
+ doBolus(insulin, carbs);
+ }
+ lastBolusWizard = null;
+ }
+
+ private static void generateTempTarget(int duration, double low, double high) {
+ TempTarget tempTarget = new TempTarget();
+ tempTarget.timeStart = new Date();
+ tempTarget.duration = duration;
+ tempTarget.reason = "WearPlugin";
+ if(tempTarget.duration != 0) {
+ tempTarget.low = low;
+ tempTarget.high = high;
+ } else {
+ tempTarget.low = 0;
+ tempTarget.high = 0;
+ }
+ tempTarget.setTimeIndex(tempTarget.getTimeIndex());
+ Dao dao = null;
+ try {
+ dao = MainApp.getDbHelper().getDaoTempTargets();
+ dao.createIfNotExists(tempTarget);
+ MainApp.bus().post(new EventTempTargetRangeChange());
+
+ //TODO: Nightscout-Treatment for Temp-Target!
+ //ConfigBuilderPlugin.uploadCareportalEntryToNS(data);
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private static void doFillBolus(final Double amount) {
+ //if(1==1)return;
+ Handler handler = new Handler(handlerThread.getLooper());
+ handler.post(new Runnable() {
+ @Override
+ public void run() {
+ PumpEnactResult result = MainApp.getConfigBuilder().deliverTreatment(amount, 0, null, false);
+ if (!result.success) {
+ sendError(MainApp.sResources.getString(R.string.treatmentdeliveryerror) +
+ "\n" +
+ result.comment);
+ }
+ }
+ });
+ }
+
+ private static void doBolus(final Double amount, final Integer carbs) {
+ //if(1==1)return;
+ Handler handler = new Handler(handlerThread.getLooper());
+ handler.post(new Runnable() {
+ @Override
+ public void run() {
+ PumpEnactResult result = MainApp.getConfigBuilder().deliverTreatment(amount, carbs, null, true);
+ if (!result.success) {
+ sendError(MainApp.sResources.getString(R.string.treatmentdeliveryerror) +
+ "\n" +
+ result.comment);
+ }
+ }
+ });
+ }
+
+ private synchronized static void sendError(String errormessage){
+ WearFragment.getPlugin(MainApp.instance()).requestActionConfirmation("ERROR", errormessage, "error");
+ lastSentTimestamp = System.currentTimeMillis();
+ lastConfirmActionString = null;
+ lastBolusWizard = null;
+ }
+}
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 33ad54ee81..96f2b75062 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
@@ -7,6 +7,7 @@ import com.squareup.otto.Subscribe;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.events.EventBolusRequested;
import info.nightscout.androidaps.events.EventNewBG;
import info.nightscout.androidaps.events.EventNewBasalProfile;
import info.nightscout.androidaps.events.EventPreferenceChange;
@@ -15,7 +16,9 @@ import info.nightscout.androidaps.events.EventTempBasalChange;
import info.nightscout.androidaps.events.EventTreatmentChange;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.plugins.Loop.events.EventNewOpenLoopNotification;
+import info.nightscout.androidaps.plugins.Overview.events.EventOverviewBolusProgress;
import info.nightscout.androidaps.plugins.Wear.wearintegration.WatchUpdaterService;
+import info.nightscout.utils.ToastUtils;
/**
* Created by adrian on 17/11/16.
@@ -48,6 +51,17 @@ public class WearPlugin implements PluginBase {
return ctx.getString(R.string.wear);
}
+ @Override
+ public String getNameShort() {
+ String name = MainApp.sResources.getString(R.string.wear_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;
@@ -130,6 +144,34 @@ public class WearPlugin implements PluginBase {
sendDataToWatch(false, true, false);
}
+
+ @Subscribe
+ public void onStatusEvent(final EventOverviewBolusProgress ev) {
+ Intent intent = new Intent(ctx, WatchUpdaterService.class).setAction(WatchUpdaterService.ACTION_SEND_BOLUSPROGRESS);
+ intent.putExtra("progresspercent", ev.percent);
+ intent.putExtra("progressstatus", ev.status);
+ ctx.startService(intent);
+ }
+
+ @Subscribe
+ public void onStatusEvent(final EventBolusRequested ev) {
+ String status = String.format(MainApp.sResources.getString(R.string.bolusrequested), ev.getAmount());
+ Intent intent = new Intent(ctx, WatchUpdaterService.class).setAction(WatchUpdaterService.ACTION_SEND_BOLUSPROGRESS);
+ intent.putExtra("progresspercent", 0);
+ 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);
+ intent.putExtra("title", title);
+ intent.putExtra("message", message);
+ intent.putExtra("actionstring", actionstring);
+ ctx.startService(intent);
+ }
+
public static boolean isEnabled() {
return fragmentEnabled;
}
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 fe6f4455c0..fc08941cd3 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
@@ -25,12 +25,13 @@ import java.util.List;
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.db.BgReading;
-import info.nightscout.androidaps.db.DatabaseHelper;
import info.nightscout.androidaps.db.TempBasal;
import info.nightscout.androidaps.interfaces.PumpInterface;
-import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal;
+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.utils.DecimalFormatter;
@@ -44,14 +45,23 @@ public class WatchUpdaterService extends WearableListenerService implements
public static final String ACTION_OPEN_SETTINGS = WatchUpdaterService.class.getName().concat(".OpenSettings");
public static final String ACTION_SEND_STATUS = WatchUpdaterService.class.getName().concat(".SendStatus");
public static final String ACTION_SEND_BASALS = WatchUpdaterService.class.getName().concat(".SendBasals");
+ public static final String ACTION_SEND_BOLUSPROGRESS = WatchUpdaterService.class.getName().concat(".BolusProgress");
+ public static final String ACTION_SEND_ACTIONCONFIRMATIONREQUEST = WatchUpdaterService.class.getName().concat(".ActionConfirmationRequest");
private GoogleApiClient googleApiClient;
public static final String WEARABLE_DATA_PATH = "/nightscout_watch_data";
public static final String WEARABLE_RESEND_PATH = "/nightscout_watch_data_resend";
+ private static final String WEARABLE_CANCELBOLUS_PATH = "/nightscout_watch_cancel_bolus";
+ public static final String WEARABLE_CONFIRM_ACTIONSTRING_PATH = "/nightscout_watch_confirmactionstring";
+ public static final String WEARABLE_INITIATE_ACTIONSTRING_PATH = "/nightscout_watch_initiateactionstring";
+
private static final String OPEN_SETTINGS_PATH = "/openwearsettings";
private static final String NEW_STATUS_PATH = "/sendstatustowear";
public static final String BASAL_DATA_PATH = "/nightscout_watch_basal";
+ public static final String BOLUS_PROGRESS_PATH = "/nightscout_watch_bolusprogress";
+ public static final String ACTION_CONFIRMATION_REQUEST_PATH = "/nightscout_watch_actionconfirmationrequest";
+
boolean wear_integration = false;
@@ -115,7 +125,15 @@ public class WatchUpdaterService extends WearableListenerService implements
sendStatus();
} else if (ACTION_SEND_BASALS.equals(action)) {
sendBasals();
- } else {
+ } else if (ACTION_SEND_BOLUSPROGRESS.equals(action)){
+ sendBolusProgress(intent.getIntExtra("progresspercent", 0), intent.hasExtra("progressstatus")?intent.getStringExtra("progressstatus"):"");
+ } else if (ACTION_SEND_ACTIONCONFIRMATIONREQUEST.equals(action)){
+ String title = intent.getStringExtra("title");
+ String message = intent.getStringExtra("message");
+ String actionstring = intent.getStringExtra("actionstring");
+ sendActionConfirmationRequest(title, message, actionstring);
+ }
+ else {
sendData();
}
} else {
@@ -135,16 +153,38 @@ public class WatchUpdaterService extends WearableListenerService implements
@Override
public void onMessageReceived(MessageEvent event) {
if (wear_integration) {
- if (event != null && event.getPath().equals(WEARABLE_RESEND_PATH))
+ if (event != null && event.getPath().equals(WEARABLE_RESEND_PATH)) {
resendData();
+ }
+
+ if (event != null && event.getPath().equals(WEARABLE_CANCELBOLUS_PATH)) {
+ cancelBolus();
+ }
+
+ if (event != null && event.getPath().equals(WEARABLE_INITIATE_ACTIONSTRING_PATH)) {
+ String actionstring = new String(event.getData());
+ ToastUtils.showToastInUiThread(this, "Wear: " + actionstring);
+ ActionStringHandler.handleInitiate(actionstring);
+ }
+
+ if (event != null && event.getPath().equals(WEARABLE_CONFIRM_ACTIONSTRING_PATH)) {
+ String actionstring = new String(event.getData());
+ ToastUtils.showToastInUiThread(this, "Wear Confirm: " + actionstring);
+ ActionStringHandler.handleConfirmation(actionstring);
+ }
}
}
+ private void cancelBolus() {
+ PumpInterface pump = MainApp.getConfigBuilder();
+ pump.stopBolusDelivering();
+ }
+
private void sendData() {
- BgReading lastBG = MainApp.getDbHelper().lastBg();
+ BgReading lastBG = GlucoseStatus.lastBg();
if (lastBG != null) {
- DatabaseHelper.GlucoseStatus glucoseStatus = MainApp.getDbHelper().getGlucoseStatusData();
+ GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData();
if(googleApiClient != null && !googleApiClient.isConnected() && !googleApiClient.isConnecting()) { googleApiConnect(); }
if (wear_integration) {
@@ -160,7 +200,7 @@ public class WatchUpdaterService extends WearableListenerService implements
}
}
- private DataMap dataMapSingleBG(BgReading lastBG, DatabaseHelper.GlucoseStatus glucoseStatus) {
+ private DataMap dataMapSingleBG(BgReading lastBG, GlucoseStatus glucoseStatus) {
NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
if(profile == null) return null;
@@ -250,12 +290,12 @@ public class WatchUpdaterService extends WearableListenerService implements
private void resendData() {
if(googleApiClient != null && !googleApiClient.isConnected() && !googleApiClient.isConnecting()) { googleApiConnect(); }
long startTime = System.currentTimeMillis() - (long)(60000 * 60 * 5.5);
- BgReading last_bg = MainApp.getDbHelper().lastBg();
+ BgReading last_bg = GlucoseStatus.lastBg();
if (last_bg == null) return;
- List graph_bgs = MainApp.getDbHelper().getDataFromTime(startTime);
- DatabaseHelper.GlucoseStatus glucoseStatus = MainApp.getDbHelper().getGlucoseStatusData();
+ List graph_bgs = MainApp.getDbHelper().getBgreadingsDataFromTime(startTime, true);
+ GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData();
if (!graph_bgs.isEmpty()) {
DataMap entries = dataMapSingleBG(last_bg, glucoseStatus);
@@ -423,6 +463,40 @@ public class WatchUpdaterService extends WearableListenerService implements
}
}
+ private void sendBolusProgress(int progresspercent, String status) {
+ if (googleApiClient.isConnected()) {
+ PutDataMapRequest dataMapRequest = PutDataMapRequest.create(BOLUS_PROGRESS_PATH);
+ //unique content
+ dataMapRequest.getDataMap().putDouble("timestamp", System.currentTimeMillis());
+ dataMapRequest.getDataMap().putString("bolusProgress", "bolusProgress");
+ dataMapRequest.getDataMap().putString("progressstatus", status);
+ dataMapRequest.getDataMap().putInt("progresspercent", progresspercent);
+ PutDataRequest putDataRequest = dataMapRequest.asPutDataRequest();
+ Wearable.DataApi.putDataItem(googleApiClient, putDataRequest);
+ } else {
+ Log.e("BolusProgress", "No connection to wearable available!");
+ }
+ }
+
+ private void sendActionConfirmationRequest(String title, String message, String actionstring) {
+ if (googleApiClient.isConnected()) {
+ PutDataMapRequest dataMapRequest = PutDataMapRequest.create(ACTION_CONFIRMATION_REQUEST_PATH);
+ //unique content
+ dataMapRequest.getDataMap().putDouble("timestamp", System.currentTimeMillis());
+ dataMapRequest.getDataMap().putString("actionConfirmationRequest", "actionConfirmationRequest");
+ dataMapRequest.getDataMap().putString("title", title);
+ dataMapRequest.getDataMap().putString("message", message);
+ dataMapRequest.getDataMap().putString("actionstring", actionstring);
+
+ ToastUtils.showToastInUiThread(this, "Requesting confirmation from wear: " + actionstring);
+
+ PutDataRequest putDataRequest = dataMapRequest.asPutDataRequest();
+ Wearable.DataApi.putDataItem(googleApiClient, putDataRequest);
+ } else {
+ Log.e("confirmationRequest", "No connection to wearable available!");
+ }
+ }
+
private void sendStatus() {
if (googleApiClient.isConnected()) {
@@ -444,10 +518,8 @@ public class WatchUpdaterService extends WearableListenerService implements
//IOB
MainApp.getConfigBuilder().getActiveTreatments().updateTotalIOB();
IobTotal bolusIob = MainApp.getConfigBuilder().getActiveTreatments().getLastCalculation().round();
- if (bolusIob == null) bolusIob = new IobTotal();
MainApp.getConfigBuilder().getActiveTempBasals().updateTotalIOB();
IobTotal basalIob = MainApp.getConfigBuilder().getActiveTempBasals().getLastCalculation().round();
- if (basalIob == null) basalIob = new IobTotal();
status += (shortString?"":(getString(R.string.treatments_iob_label_string) + " ")) + DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "("
+ DecimalFormatter.to2Decimal(bolusIob.iob) + "|"
+ DecimalFormatter.to2Decimal(basalIob.basaliob) + ")";
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 653bc6e7b6..532959d926 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
@@ -15,8 +15,8 @@ import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainActivity;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.data.GlucoseStatus;
import info.nightscout.androidaps.db.BgReading;
-import info.nightscout.androidaps.db.DatabaseHelper;
import info.nightscout.androidaps.db.TempBasal;
import info.nightscout.androidaps.events.EventInitializationChanged;
import info.nightscout.androidaps.events.EventNewBG;
@@ -27,8 +27,7 @@ import info.nightscout.androidaps.events.EventTempBasalChange;
import info.nightscout.androidaps.events.EventTreatmentChange;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PumpInterface;
-import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal;
-import info.nightscout.androidaps.plugins.Overview.Notification;
+import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.client.data.NSProfile;
import info.nightscout.utils.DecimalFormatter;
@@ -62,6 +61,12 @@ public class PersistentNotificationPlugin implements PluginBase{
return ctx.getString(R.string.ongoingnotificaction);
}
+ @Override
+ public String getNameShort() {
+ // use long name as fallback (not visible in tabs)
+ return getName();
+ }
+
@Override
public boolean isEnabled(int type) {
return fragmentEnabled;
@@ -99,22 +104,23 @@ public class PersistentNotificationPlugin implements PluginBase{
String line1 = ctx.getString(R.string.noprofile);
+ if (MainApp.getConfigBuilder().getActiveProfile() == null) return;
NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
- BgReading lastBG = MainApp.getDbHelper().lastBg();
- DatabaseHelper.GlucoseStatus glucoseStatus = MainApp.getDbHelper().getGlucoseStatusData();
+ BgReading lastBG = GlucoseStatus.lastBg();
+ GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData();
if(profile != null && lastBG != null) {
line1 = lastBG.valueToUnitsToString(profile.getUnits());
- }
- if (glucoseStatus != null) {
- line1 += " Δ" + deltastring(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, profile.getUnits())
- + " avgΔ" + deltastring(glucoseStatus.avgdelta, glucoseStatus.avgdelta * Constants.MGDL_TO_MMOLL, profile.getUnits());
- } else {
- line1 += " " +
- ctx.getString(R.string.old_data) +
- " ";
+ if (glucoseStatus != null) {
+ line1 += " Δ" + deltastring(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, profile.getUnits())
+ + " avgΔ" + deltastring(glucoseStatus.avgdelta, glucoseStatus.avgdelta * Constants.MGDL_TO_MMOLL, profile.getUnits());
+ } else {
+ line1 += " " +
+ ctx.getString(R.string.old_data) +
+ " ";
+ }
}
PumpInterface pump = MainApp.getConfigBuilder();
@@ -127,10 +133,8 @@ public class PersistentNotificationPlugin implements PluginBase{
//IOB
MainApp.getConfigBuilder().getActiveTreatments().updateTotalIOB();
IobTotal bolusIob = MainApp.getConfigBuilder().getActiveTreatments().getLastCalculation().round();
- if (bolusIob == null) bolusIob = new IobTotal();
MainApp.getConfigBuilder().getActiveTempBasals().updateTotalIOB();
IobTotal basalIob = MainApp.getConfigBuilder().getActiveTempBasals().getLastCalculation().round();
- if (basalIob == null) basalIob = new IobTotal();
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)";
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 0431c0e5d6..a7f3f02f36 100644
--- a/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java
+++ b/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java
@@ -7,12 +7,11 @@ package info.nightscout.androidaps.receivers;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
-import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.content.ServiceConnection;
-import android.os.IBinder;
+import android.content.SharedPreferences;
import android.os.PowerManager;
+import android.preference.PreferenceManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -21,14 +20,12 @@ import java.util.Date;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
-import info.nightscout.androidaps.MainActivity;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.interfaces.PluginBase;
-import info.nightscout.androidaps.plugins.DanaR.DanaRFragment;
+import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.DanaR.DanaRPlugin;
-import info.nightscout.androidaps.plugins.DanaR.Services.ExecutionService;
import info.nightscout.androidaps.plugins.DanaRKorean.DanaRKoreanPlugin;
-import info.nightscout.utils.ToastUtils;
+import info.nightscout.client.data.NSProfile;
public class KeepAliveReceiver extends BroadcastReceiver {
private static Logger log = LoggerFactory.getLogger(KeepAliveReceiver.class);
@@ -39,32 +36,48 @@ public class KeepAliveReceiver extends BroadcastReceiver {
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
wl.acquire();
- log.debug("KeepAlive received");
- final DanaRPlugin danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class);
- if (danaRPlugin != null && Config.DANAR && danaRPlugin.isEnabled(PluginBase.PUMP)) {
- if (danaRPlugin.getDanaRPump().lastConnection.getTime() + 30 * 60 * 1000L < new Date().getTime() && !danaRPlugin.isConnected() && !danaRPlugin.isConnecting()) {
+
+ final PumpInterface pump = MainApp.getConfigBuilder();
+ final NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
+ if (pump != null && profile != null) {
+ boolean isBasalOutdated = false;
+ boolean isStatusOutdated = false;
+
+ Date lastConnection = pump.lastStatusTime();
+ if (lastConnection.getTime() + 30 * 60 * 1000L < new Date().getTime())
+ isStatusOutdated = true;
+ if (Math.abs(profile.getBasal(NSProfile.secondsFromMidnight()) - pump.getBaseBasalRate()) > pump.getPumpDescription().basalStep)
+ isBasalOutdated = true;
+
+ SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext());
+ if (SP.getBoolean("syncprofiletopump", false) && !pump.isThisProfileSet(profile)) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
- danaRPlugin.doConnect("KeepAlive");
+ pump.setNewBasalProfile(profile);
}
});
t.start();
- }
- }
- final DanaRKoreanPlugin danaRKoreanPlugin = (DanaRKoreanPlugin) MainApp.getSpecificPlugin(DanaRKoreanPlugin.class);
- if (danaRKoreanPlugin != null && Config.DANAR && danaRKoreanPlugin.isEnabled(PluginBase.PUMP)) {
- if (danaRKoreanPlugin.getDanaRPump().lastConnection.getTime() + 30 * 60 * 1000L < new Date().getTime() && !danaRKoreanPlugin.isConnected() && !danaRKoreanPlugin.isConnecting()) {
+ } else if (isStatusOutdated && !pump.isBusy()) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
- danaRKoreanPlugin.doConnect("KeepAlive");
+ pump.updateStatus("KeepAlive. Status outdated.");
+ }
+ });
+ t.start();
+ } else if (isBasalOutdated && !pump.isBusy()) {
+ Thread t = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ pump.updateStatus("KeepAlive. Basal outdated.");
}
});
t.start();
}
}
+ log.debug("KeepAlive received");
wl.release();
}
diff --git a/app/src/main/java/info/nightscout/androidaps/tabs/TabPageAdapter.java b/app/src/main/java/info/nightscout/androidaps/tabs/TabPageAdapter.java
index 7117ddd9af..cedae6e9d7 100644
--- a/app/src/main/java/info/nightscout/androidaps/tabs/TabPageAdapter.java
+++ b/app/src/main/java/info/nightscout/androidaps/tabs/TabPageAdapter.java
@@ -1,6 +1,8 @@
package info.nightscout.androidaps.tabs;
import android.content.Context;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
@@ -36,7 +38,12 @@ public class TabPageAdapter extends FragmentStatePagerAdapter {
@Override
public CharSequence getPageTitle(int position) {
+ SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
+ if(preferences.getBoolean("short_tabtitles", false)){
+ return visibleFragmentList.get(position).getNameShort();
+ }
return visibleFragmentList.get(position).getName();
+
}
@Override
diff --git a/app/src/main/java/info/nightscout/client/data/DbLogger.java b/app/src/main/java/info/nightscout/client/data/DbLogger.java
index af2345a5b0..3695d5e735 100644
--- a/app/src/main/java/info/nightscout/client/data/DbLogger.java
+++ b/app/src/main/java/info/nightscout/client/data/DbLogger.java
@@ -26,4 +26,14 @@ public class DbLogger {
} else if (Config.logNSUpload)
log.debug("DBADD dbAdd " + q.size() + " receivers " + data);
}
+
+ public static void dbRemove(Intent intent, String data, Class sender) {
+ Logger log = LoggerFactory.getLogger(sender);
+ List q = MainApp.instance().getApplicationContext().getPackageManager().queryBroadcastReceivers(intent, 0);
+ if (q.size() < 1) {
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(),MainApp.sResources.getString(R.string.nsclientnotinstalled));
+ log.error("DBREMOVE No receivers");
+ } else if (Config.logNSUpload)
+ log.debug("DBREMOVE dbRemove " + q.size() + " receivers " + data);
+ }
}
diff --git a/app/src/main/java/info/nightscout/client/data/NSProfile.java b/app/src/main/java/info/nightscout/client/data/NSProfile.java
index ec431e69a8..2e732c8c9f 100644
--- a/app/src/main/java/info/nightscout/client/data/NSProfile.java
+++ b/app/src/main/java/info/nightscout/client/data/NSProfile.java
@@ -120,7 +120,7 @@ public class NSProfile {
}
return 3D;
}
-
+/*
public Double getCarbAbsorbtionRate() {
return getCarbAbsorbtionRate(getDefaultProfile());
}
@@ -137,7 +137,7 @@ public class NSProfile {
}
return 0D;
}
-
+*/
// mmol or mg/dl
public String getUnits() {
return getUnits(getDefaultProfile());
diff --git a/app/src/main/java/info/nightscout/sampleData/cgm/glucose.json b/app/src/main/java/info/nightscout/sampleData/cgm/glucose.json
new file mode 100644
index 0000000000..c4c0130106
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/cgm/glucose.json
@@ -0,0 +1,15002 @@
+[
+ {
+ "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
new file mode 100644
index 0000000000..c4c0130106
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/cgm/ns-glucose.json
@@ -0,0 +1,15002 @@
+[
+ {
+ "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
new file mode 100644
index 0000000000..c1460545c8
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/enact/enacted.json
@@ -0,0 +1,31 @@
+{
+ "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
new file mode 100644
index 0000000000..e5a25dbb3f
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/enact/suggested.json
@@ -0,0 +1 @@
+{"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
new file mode 100644
index 0000000000..4f4bc03804
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/monitor/battery.json
@@ -0,0 +1,4 @@
+{
+ "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
new file mode 100644
index 0000000000..1169f8d030
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/monitor/carbhistory.json
@@ -0,0 +1 @@
+[{"_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
new file mode 100644
index 0000000000..d8e4e2f4fe
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/monitor/clock-zoned.json
@@ -0,0 +1 @@
+"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
new file mode 100644
index 0000000000..233cee13ee
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/monitor/clock.json
@@ -0,0 +1 @@
+"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
new file mode 100644
index 0000000000..15da5e3d65
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/monitor/edison-battery.json
@@ -0,0 +1,4 @@
+{
+ "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
new file mode 100644
index 0000000000..c4c0130106
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/monitor/glucose.json
@@ -0,0 +1,15002 @@
+[
+ {
+ "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
new file mode 100644
index 0000000000..f96f4137a9
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/monitor/iob.json
@@ -0,0 +1 @@
+[{"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
new file mode 100644
index 0000000000..d0e41ca9fa
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/monitor/meal.json
@@ -0,0 +1 @@
+{"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
new file mode 100644
index 0000000000..460af83e51
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/monitor/mmtune.json
@@ -0,0 +1,131 @@
+{
+ "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
new file mode 100644
index 0000000000..3070d01cd5
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/monitor/pumphistory-zoned.json
@@ -0,0 +1,936 @@
+[
+ {
+ "_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
new file mode 100644
index 0000000000..709365d77c
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/monitor/pumphistory.json
@@ -0,0 +1,936 @@
+[
+ {
+ "_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
new file mode 100644
index 0000000000..8044dad1ca
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/monitor/reservoir.json
@@ -0,0 +1 @@
+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
new file mode 100644
index 0000000000..557b2e011f
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/monitor/status.json
@@ -0,0 +1,5 @@
+{
+ "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
new file mode 100644
index 0000000000..199234eef0
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/monitor/temp_basal.json
@@ -0,0 +1,5 @@
+{
+ "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
new file mode 100644
index 0000000000..531ce45238
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/settings/autosens.json
@@ -0,0 +1 @@
+{"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
new file mode 100644
index 0000000000..80e240fb56
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/settings/basal_profile.json
@@ -0,0 +1,140 @@
+[
+ {
+ "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
new file mode 100644
index 0000000000..a53f740ae4
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/settings/bg_targets.json
@@ -0,0 +1,16 @@
+{
+ "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
new file mode 100644
index 0000000000..887bc01e31
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/settings/bg_targets_raw.json
@@ -0,0 +1,15 @@
+{
+ "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
new file mode 100644
index 0000000000..8249963d76
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/settings/carb_ratios.json
@@ -0,0 +1,31 @@
+{
+ "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
new file mode 100644
index 0000000000..42aa84cbae
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/settings/insulin_sensitivities.json
@@ -0,0 +1,28 @@
+{
+ "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
new file mode 100644
index 0000000000..ca36a04c94
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/settings/insulin_sensitivities_raw.json
@@ -0,0 +1,27 @@
+{
+ "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
new file mode 100644
index 0000000000..7bd9b5e600
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/settings/model.json
@@ -0,0 +1 @@
+"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
new file mode 100644
index 0000000000..66e6cbc197
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/settings/profile.json
@@ -0,0 +1 @@
+{"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
new file mode 100644
index 0000000000..3110d24e4c
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/settings/pumphistory-24h-zoned.json
@@ -0,0 +1,4075 @@
+[
+ {
+ "_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
new file mode 100644
index 0000000000..4513d0796d
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/settings/pumphistory-24h.json
@@ -0,0 +1,4075 @@
+[
+ {
+ "_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
new file mode 100644
index 0000000000..5a0fc0dc17
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/settings/settings.json
@@ -0,0 +1,27 @@
+{
+ "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
new file mode 100644
index 0000000000..0637a088a0
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/settings/temptargets.json
@@ -0,0 +1 @@
+[]
\ 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
new file mode 100644
index 0000000000..f331bc3192
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/upload/index.html
@@ -0,0 +1 @@
+{"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
new file mode 100644
index 0000000000..a23d48aacb
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/upload/latest-treatments.json
@@ -0,0 +1,31 @@
+[
+ {
+ "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
new file mode 100644
index 0000000000..3e15d231f9
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/upload/ns-status.json
@@ -0,0 +1 @@
+{"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
new file mode 100644
index 0000000000..f331bc3192
--- /dev/null
+++ b/app/src/main/java/info/nightscout/sampleData/upload/pebble.json
@@ -0,0 +1 @@
+{"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/utils/BolusWizard.java b/app/src/main/java/info/nightscout/utils/BolusWizard.java
index 736958a862..80e907bb6f 100644
--- a/app/src/main/java/info/nightscout/utils/BolusWizard.java
+++ b/app/src/main/java/info/nightscout/utils/BolusWizard.java
@@ -3,10 +3,9 @@ package info.nightscout.utils;
import org.json.JSONObject;
import info.nightscout.androidaps.MainApp;
-import info.nightscout.androidaps.R;
import info.nightscout.androidaps.interfaces.TempBasalsInterface;
import info.nightscout.androidaps.interfaces.TreatmentsInterface;
-import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal;
+import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.client.data.NSProfile;
/**
@@ -16,7 +15,7 @@ import info.nightscout.client.data.NSProfile;
public class BolusWizard {
// Inputs
JSONObject specificProfile = null;
- Integer carbs = 0;
+ public Integer carbs = 0;
Double bg = 0d;
Double correction;
Boolean includeBolusIOB = true;
diff --git a/app/src/main/java/info/nightscout/utils/JSONFormatter.java b/app/src/main/java/info/nightscout/utils/JSONFormatter.java
index 8d698ef5d0..a37169f061 100644
--- a/app/src/main/java/info/nightscout/utils/JSONFormatter.java
+++ b/app/src/main/java/info/nightscout/utils/JSONFormatter.java
@@ -17,7 +17,12 @@ public class JSONFormatter {
public static Spanned format(final String jsonString) {
final JsonVisitor visitor = new JsonVisitor(4, ' ');
try {
- return Html.fromHtml(visitor.visit(new JSONObject(jsonString), 0));
+ if (jsonString.equals("undefined"))
+ return Html.fromHtml("undefined");
+ else if (jsonString.getBytes()[0] == '[')
+ return Html.fromHtml(visitor.visit(new JSONArray(jsonString), 0));
+ else
+ return Html.fromHtml(visitor.visit(new JSONObject(jsonString), 0));
} catch (JSONException e) {
e.printStackTrace();
return Html.fromHtml("");
diff --git a/app/src/main/java/info/nightscout/utils/LogDialog.java b/app/src/main/java/info/nightscout/utils/LogDialog.java
new file mode 100644
index 0000000000..0bd4216163
--- /dev/null
+++ b/app/src/main/java/info/nightscout/utils/LogDialog.java
@@ -0,0 +1,68 @@
+package info.nightscout.utils;
+
+import android.app.AlertDialog;
+import android.content.ClipData;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.ClipboardManager;
+import android.widget.TextView;
+
+import com.crashlytics.android.Crashlytics;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.R;
+
+/**
+ * Created by mike on 09.02.2017.
+ */
+
+public class LogDialog {
+
+ public static void showLogcat(Context context) {
+ String logCat = "no logs";
+ final String processId = Integer.toString(android.os.Process.myPid());
+ try {
+ Process process = Runtime.getRuntime().exec("logcat -d " + MainApp.sResources.getString(R.string.app_name) + ":D");
+ BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
+ StringBuilder log = new StringBuilder();
+ String line;
+
+ while ((line = bufferedReader.readLine()) != null) {
+ if (line.contains(processId)) log.append(line + "\n");
+ }
+ logCat = log.toString();
+
+ } catch (IOException e) {
+ logCat = e.getLocalizedMessage();
+ } finally {
+ showAlertText(logCat, context);
+ }
+ }
+
+ public static void showAlertText(final String msg, final Context context) {
+ try {
+ AlertDialog alertDialog = new AlertDialog.Builder(context)
+ .setMessage(msg)
+ .setPositiveButton(MainApp.sResources.getString(R.string.copy_to_clipboard), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
+ clipboard.setPrimaryClip(ClipData.newPlainText(null, msg));
+ ToastUtils.showToastInUiThread(context, MainApp.sResources.getString(R.string.copied_to_clipboard));
+ }
+ })
+ .setNegativeButton(android.R.string.cancel, null)
+ .show();
+
+ if (msg.length() > 100) {
+ TextView textView = (TextView) alertDialog.findViewById(android.R.id.message);
+ textView.setTextSize(10);
+ }
+ } catch (Exception e) {
+ // crashing on screen rotation
+ }
+ }
+}
diff --git a/app/src/main/java/info/nightscout/utils/PasswordProtection.java b/app/src/main/java/info/nightscout/utils/PasswordProtection.java
new file mode 100644
index 0000000000..2b8d7a59c1
--- /dev/null
+++ b/app/src/main/java/info/nightscout/utils/PasswordProtection.java
@@ -0,0 +1,72 @@
+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;
+import android.widget.TextView;
+
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.R;
+
+/**
+ * Created by mike on 14.02.2017.
+ */
+
+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;
+ }
+ return true;
+ }
+
+ 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();
+ return;
+ }
+ LayoutInflater li = LayoutInflater.from(context);
+ View promptsView = li.inflate(R.layout.passwordprompt, null);
+
+ AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
+ alertDialogBuilder.setView(promptsView);
+
+ final TextView label = (TextView) promptsView.findViewById(R.id.passwordprompt_text);
+ label.setText(MainApp.sResources.getString(stringID));
+ final EditText userInput = (EditText) promptsView.findViewById(R.id.passwordprompt_pass);
+
+ // set dialog message
+ alertDialogBuilder
+ .setCancelable(false)
+ .setPositiveButton("OK",
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog,int id) {
+ String enteredPassword = userInput.getText().toString();
+ if (password.equals(enteredPassword)) {
+ if (ok != null) ok.run();
+ } else {
+ ToastUtils.showToastInUiThread(context, MainApp.sResources.getString(R.string.wrongpassword));
+ if (fail != null) fail.run();
+ }
+ }
+ })
+ .setNegativeButton("Cancel",
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog,int id) {
+ dialog.cancel();
+ }
+ });
+
+ AlertDialog alertDialog = alertDialogBuilder.create();
+ alertDialog.show();
+ }
+}
diff --git a/app/src/main/java/info/nightscout/utils/Profiler.java b/app/src/main/java/info/nightscout/utils/Profiler.java
new file mode 100644
index 0000000000..99093b238f
--- /dev/null
+++ b/app/src/main/java/info/nightscout/utils/Profiler.java
@@ -0,0 +1,18 @@
+package info.nightscout.utils;
+
+import org.slf4j.Logger;
+
+import java.util.Date;
+
+/**
+ * Created by mike on 29.01.2017.
+ */
+
+public class Profiler {
+ public Profiler(){}
+
+ static public void log(Logger log, String function, Date start) {
+ long msec = new Date().getTime() - start.getTime();
+ log.debug(">>> " + function + " <<< executed in " + msec + " miliseconds");
+ }
+}
diff --git a/app/src/main/java/info/nightscout/utils/TimeListEdit.java b/app/src/main/java/info/nightscout/utils/TimeListEdit.java
index 811bec61fe..1c4f5d4edd 100644
--- a/app/src/main/java/info/nightscout/utils/TimeListEdit.java
+++ b/app/src/main/java/info/nightscout/utils/TimeListEdit.java
@@ -2,6 +2,8 @@ package info.nightscout.utils;
import android.content.Context;
import android.os.Build;
+import android.support.v4.content.ContextCompat;
+import android.support.v4.widget.TextViewCompat;
import android.text.Editable;
import android.text.Layout;
import android.text.TextWatcher;
@@ -73,11 +75,8 @@ public class TimeListEdit {
LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
llp.setMargins(10, 0, 0, 0); // llp.setMargins(left, top, right, bottom);
textlabel.setLayoutParams(llp);
- textlabel.setBackgroundColor(MainApp.sResources.getColor(R.color.linearBlockBackground));
- if (Build.VERSION.SDK_INT < 23)
- textlabel.setTextAppearance(context, android.R.style.TextAppearance_Medium);
- else
- textlabel.setTextAppearance(android.R.style.TextAppearance_Medium);
+ textlabel.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.linearBlockBackground));
+ TextViewCompat.setTextAppearance(textlabel, android.R.style.TextAppearance_Medium);
layout.addView(textlabel);
for (int i = 0; i < itemsCount(); i++) {
diff --git a/app/src/main/java/info/nightscout/utils/Translator.java b/app/src/main/java/info/nightscout/utils/Translator.java
index 93194655d7..75ee881c21 100644
--- a/app/src/main/java/info/nightscout/utils/Translator.java
+++ b/app/src/main/java/info/nightscout/utils/Translator.java
@@ -56,7 +56,7 @@ public class Translator {
case "Sensor":
return MainApp.sResources.getString(R.string.glucosetype_sensor);
case "Manual":
- return MainApp.sResources.getString(R.string.glucosetype_manual);
+ return MainApp.sResources.getString(R.string.manual);
}
return text;
}
diff --git a/app/src/main/java/info/nightscout/utils/XdripCalibrations.java b/app/src/main/java/info/nightscout/utils/XdripCalibrations.java
new file mode 100644
index 0000000000..338304d790
--- /dev/null
+++ b/app/src/main/java/info/nightscout/utils/XdripCalibrations.java
@@ -0,0 +1,69 @@
+package info.nightscout.utils;
+
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.pm.ResolveInfo;
+import android.os.Bundle;
+import android.support.v7.app.AlertDialog;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+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.Services.Intents;
+import info.nightscout.client.data.NSProfile;
+
+/**
+ * Created by mike on 10.02.2017.
+ */
+
+public class XdripCalibrations {
+ private static Logger log = LoggerFactory.getLogger(XdripCalibrations.class);
+
+ public static void confirmAndSendCalibration(final Double bg, Context parentContext) {
+ if (parentContext != null) {
+ String confirmMessage = String.format(MainApp.sResources.getString(R.string.send_calibration), bg);
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(parentContext);
+ builder.setTitle(MainApp.sResources.getString(R.string.confirmation));
+ builder.setMessage(confirmMessage);
+ builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ sendIntent(bg);
+ }
+ });
+ builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null);
+ builder.show();
+ }
+ }
+
+ public static boolean sendIntent(Double bg) {
+ final NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
+
+ Context context = MainApp.instance().getApplicationContext();
+ Bundle bundle = new Bundle();
+ bundle.putDouble("glucose_number", bg);
+ bundle.putString("units", profile.getUnits().equals(Constants.MGDL) ? "mgdl" : "mmol");
+ bundle.putLong("timestamp", new Date().getTime());
+ Intent intent = new Intent(Intents.ACTION_REMOTE_CALIBRATION);
+ intent.putExtras(bundle);
+ intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
+ context.sendBroadcast(intent);
+ List q = MainApp.instance().getApplicationContext().getPackageManager().queryBroadcastReceivers(intent, 0);
+ if (q.size() < 1) {
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.xdripnotinstalled));
+ log.debug(MainApp.sResources.getString(R.string.xdripnotinstalled));
+ return false;
+ } else {
+ ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.calibrationsent));
+ log.debug(MainApp.sResources.getString(R.string.calibrationsent));
+ return true;
+ }
+ }
+}
diff --git a/app/src/main/res/drawable-mdpi-v11/temptargetborder.xml b/app/src/main/res/drawable-mdpi-v11/temptargetborder.xml
new file mode 100644
index 0000000000..8dc85926e2
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi-v11/temptargetborder.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable-mdpi-v11/temptargetborderdisabled.xml b/app/src/main/res/drawable-mdpi-v11/temptargetborderdisabled.xml
new file mode 100644
index 0000000000..60a46f667e
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi-v11/temptargetborderdisabled.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/initializingborder.xml b/app/src/main/res/drawable/initializingborder.xml
new file mode 100644
index 0000000000..7a46a6f1eb
--- /dev/null
+++ b/app/src/main/res/drawable/initializingborder.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/actions_fragment.xml b/app/src/main/res/layout/actions_fragment.xml
index 071fabb527..7eb751ac1d 100644
--- a/app/src/main/res/layout/actions_fragment.xml
+++ b/app/src/main/res/layout/actions_fragment.xml
@@ -22,6 +22,19 @@
android:text="@string/careportal_profileswitch"
android:textColor="@color/colorProfileSwitchButton" />
+
+
+
+
diff --git a/app/src/main/res/layout/careportal_newnstreatment_dialog.xml b/app/src/main/res/layout/careportal_newnstreatment_dialog.xml
index a7815c727b..70a4a09eb3 100644
--- a/app/src/main/res/layout/careportal_newnstreatment_dialog.xml
+++ b/app/src/main/res/layout/careportal_newnstreatment_dialog.xml
@@ -94,14 +94,15 @@
android:id="@+id/careportal_newnstreatment_meter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:checked="true"
+ android:checked="false"
android:text="@string/careportal_newnstreatment_meter" />
+ android:text="@string/careportal_newnstreatment_sensor"
+ android:checked="true" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:padding="5dp"
+ android:backgroundTint="@color/mdtp_transparent_black"
+ android:background="@drawable/pillborder"
+ android:backgroundTintMode="src_over">
-
-
+ android:inputType="number"
+ android:selectAllOnFocus="true"
+ android:textAlignment="center" />
+
+
+ android:padding="5dp"
+ android:backgroundTint="@color/mdtp_transparent_black"
+ android:background="@drawable/pillborder"
+ android:backgroundTintMode="src_over">
-
+ android:inputType="number"
+ android:selectAllOnFocus="true"
+ android:textAlignment="center" />
@@ -231,7 +254,12 @@
android:text="@string/dia"
android:textAppearance="?android:attr/textAppearanceMedium" />
-
-
-
-
-
-
-
-
@@ -267,14 +277,24 @@
android:text="@string/target_range"
android:textAppearance="?android:attr/textAppearanceMedium" />
-
-
+
+
+ android:layout_height="match_parent"
+ android:orientation="vertical">
-
-
-
-
-
+ android:textStyle="bold" />
+
+
+
+ android:textStyle="bold" />
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_marginLeft="5dp"
+ android:text="@string/configbuilder_profile"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textStyle="bold" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/danar_fragment.xml b/app/src/main/res/layout/danar_fragment.xml
index 00463f5dd0..2a1decfdd9 100644
--- a/app/src/main/res/layout/danar_fragment.xml
+++ b/app/src/main/res/layout/danar_fragment.xml
@@ -252,22 +252,55 @@
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10dp"
+ android:orientation="horizontal">
+
+
+
+
+
+
+
+
+ android:layout_weight="1"
+ android:text="@string/danar_viewprofile" />
-
+
diff --git a/app/src/main/res/layout/danar_statsactivity.xml b/app/src/main/res/layout/danar_statsactivity.xml
new file mode 100644
index 0000000000..dfe64bd9d6
--- /dev/null
+++ b/app/src/main/res/layout/danar_statsactivity.xml
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/localprofile_fragment.xml b/app/src/main/res/layout/localprofile_fragment.xml
index 03b459eb9b..320e457598 100644
--- a/app/src/main/res/layout/localprofile_fragment.xml
+++ b/app/src/main/res/layout/localprofile_fragment.xml
@@ -16,9 +16,9 @@
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+ android:textAppearance="?android:attr/textAppearanceMedium" />
-
-
-
-
-
-
-
-
+ android:textAlignment="center" />
+ android:orientation="vertical" />
+ android:orientation="vertical" />
+
+
+
+
diff --git a/app/src/main/res/layout/nsprofileviewer_fragment.xml b/app/src/main/res/layout/nsprofileviewer_fragment.xml
index df7b15a654..062e81ac3c 100644
--- a/app/src/main/res/layout/nsprofileviewer_fragment.xml
+++ b/app/src/main/res/layout/nsprofileviewer_fragment.xml
@@ -17,7 +17,7 @@
android:id="@+id/profileview_noprofile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="@string/nsprofileview_noprofile_text"
+ android:text="@string/noprofileset"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@android:color/holo_red_light"
android:textStyle="bold"
diff --git a/app/src/main/res/layout/openapsama_fragment.xml b/app/src/main/res/layout/openapsama_fragment.xml
new file mode 100644
index 0000000000..cd5dfb5a28
--- /dev/null
+++ b/app/src/main/res/layout/openapsama_fragment.xml
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/overview_calibration_dialog.xml b/app/src/main/res/layout/overview_calibration_dialog.xml
new file mode 100644
index 0000000000..cff9d0dab1
--- /dev/null
+++ b/app/src/main/res/layout/overview_calibration_dialog.xml
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/overview_editquickwizard_dialog.xml b/app/src/main/res/layout/overview_editquickwizard_dialog.xml
index c851d708c1..29515f7c79 100644
--- a/app/src/main/res/layout/overview_editquickwizard_dialog.xml
+++ b/app/src/main/res/layout/overview_editquickwizard_dialog.xml
@@ -4,7 +4,6 @@
android:layout_height="match_parent"
tools:context="info.nightscout.androidaps.plugins.Overview.Dialogs.EditQuickWizardDialog">
-
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:layout_weight="0.1" />
+
+
+
+
+
+
+
+
+ android:orientation="horizontal"
+ android:gravity="center_horizontal">
+ android:textStyle="bold" />
+ android:textAppearance="?android:attr/textAppearanceSmall" />
@@ -116,9 +154,9 @@
@@ -150,10 +188,22 @@
android:layout_gravity="center_horizontal"
android:textAppearance="?android:attr/textAppearanceSmall" />
-
+ android:layout_height="match_parent">
+
+
+
+
+
+
+
@@ -240,8 +302,8 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="3dp"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginLeft="5dp"
+ android:layout_marginRight="5dp"
android:layout_marginTop="3dp"
android:layout_weight="0.5"
android:drawableLeft="@drawable/bread"
diff --git a/app/src/main/res/layout/passwordprompt.xml b/app/src/main/res/layout/passwordprompt.xml
new file mode 100644
index 0000000000..8690f28400
--- /dev/null
+++ b/app/src/main/res/layout/passwordprompt.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/simpleprofile_fragment.xml b/app/src/main/res/layout/simpleprofile_fragment.xml
index f10b91e227..da04c97875 100644
--- a/app/src/main/res/layout/simpleprofile_fragment.xml
+++ b/app/src/main/res/layout/simpleprofile_fragment.xml
@@ -41,7 +41,7 @@
-
-
-
-
diff --git a/app/src/main/res/layout/temptargetrange_fragment.xml b/app/src/main/res/layout/temptargetrange_fragment.xml
new file mode 100644
index 0000000000..d93b5f3312
--- /dev/null
+++ b/app/src/main/res/layout/temptargetrange_fragment.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/temptargetrange_item.xml b/app/src/main/res/layout/temptargetrange_item.xml
new file mode 100644
index 0000000000..25f941f0ec
--- /dev/null
+++ b/app/src/main/res/layout/temptargetrange_item.xml
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/treatments_item.xml b/app/src/main/res/layout/treatments_item.xml
index 662069a5e3..f82b335d37 100644
--- a/app/src/main/res/layout/treatments_item.xml
+++ b/app/src/main/res/layout/treatments_item.xml
@@ -134,6 +134,13 @@
android:layout_marginRight="30dp"
android:textStyle="bold" />
+
diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml
index e5de7ec9b6..5ebc0820b7 100644
--- a/app/src/main/res/menu/menu_main.xml
+++ b/app/src/main/res/menu/menu_main.xml
@@ -14,8 +14,8 @@
android:id="@+id/nav_import"
android:title="@string/nav_import" />
+ android:id="@+id/nav_show_logcat"
+ android:title="@string/nav_show_logcat" />
diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml
index 3ca9fc4008..9d8d44f4b9 100644
--- a/app/src/main/res/values-bg/strings.xml
+++ b/app/src/main/res/values-bg/strings.xml
@@ -89,7 +89,7 @@
Базални стойности:
DIA (Време на действие на инсулина):
IC (Инсулин/въглехидр.):
- НЕ Е ЗАДАДЕН ПРОФИЛ
+ НЕ Е ЗАДАДЕН ПРОФИЛ
Целeва КЗ:
Единици:
Цели
@@ -124,7 +124,7 @@
Статус на помпа в NS
Стойност
Основание
- Искате ли да обновите treatments от Nightscout
+ Искате ли да обновите treatments от Nightscout
Безопасност
Задай нов удължен болусs:
Приложи нов временен базал:
@@ -205,7 +205,7 @@
РАЗБИРАМ И СЕ СЪГЛАСЯВАМ
Език
Сигурност
- Синхронизирай помпата с профила в Nightscout
+ Синхронизирай помпата с профила
Няма bluetooth адаптер
Nightscout
Разбрах
@@ -225,12 +225,11 @@
Обнови профила
Процент
Сензор
- Ръчно
+ Ръчно
Пръст
Неправилно зададени стойности
Виж профила
DanaR профил
- Усвояване на въглехидрати гр./ч.
DIA (Време на действие на инсулина) ч.:
Последен болус:
Неправилни входни данни
@@ -247,7 +246,7 @@
НАТИСНАТ СТОП
КЗ цел за изчисления
Помпата е заета
- Изчаква за помпа
+ Изчаква за помпа. Click to refresh.
Грешна парола за помпата!
Достигнахте лимита
аларма
@@ -348,7 +347,6 @@
NS upload only (изключва синхронизацията)
Моля изключете "NS upload only" за да използвате това.
NS upload only. Not effective on SGV unless a local source like xDrip is selected. Not effective on Profiles while NS-Profiles is used.
- Усвояване на ВХ (ч):
Моля рестартирайте телефона или AndroidAPS, в противен случай информацията за грешки няма да се запише(важно за да се потвърди, че алгоритъмът работи правилно)
Край на временен базал
Старт на временен базал
@@ -365,7 +363,7 @@
Долна линия
Изтощена батерия
Отвори Опции на часовника
- Горна и долна линия на диаграмата на часовника
+ Стойност на линиите за ниска и висока КЗ (mmol/l)
Диапазон на визуализация
Неуспешно задаване на базален профил
Базалният профил е обновен
@@ -375,5 +373,66 @@
Изпрати всички данни отново
Wear
Избран е грешен тип помпа
- преди %d м.
+ преди %d м.
+ "Д-я"
+ "Wear"
+ "ВП "
+ "ТТ "
+ "ВЦeл"
+ "ВБ "
+ "СМС "
+ "ОПр "
+ "Пр "
+ "HOME"
+ "ЦЕЛИ "
+ "oAPS"
+ "Loop "
+ "ЛПр "
+ "Dana"
+ "КОНФ. "
+ "ППр "
+ "CaPr"
+ Физ.активност
+ DanaR статистика
+ Базал
+ Болус
+ Дата
+ Стари данни! Натиснете \"Презареждане\"
+ Коефициент
+ Общо базален инс.
+ Общо базален инс.²
+ TDD
+ Възможна неточност, ако сте използвали болус за презареждане!
+ Преди хранене
+ Greek
+ Инициализиране ...
+ Локален профил
+ Дългоср. изменение
+ Писалки
+ OpenAPS AMA
+ Разреши AMA autosens
+ Autosens данни
+ СТАРИ ДАННИ
+ Текущи известия
+ Script debug
+ %.2f ограничено до %.2f
+ Искате ли да обновите временните цели от Найтскаут
+ Премахни запис:
+ Краткоср. Δ:
+ Къси имена
+ Bolus %.2fU delivered successfully
+ Временна цел
+ Обнови временни цели от NS
+ Експоненциално претеглена TDD
+ Комулативна TDD
+ Тегло
+ # Days
+ MM640g
+ Масив от %d елемента. Актуална стойност:
+ Basal:
+ Bolus:
+ Delta:
+ IOB:
+ %dmin ago
+ Изчаква за помпа
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index d6c65fb557..835421fbb0 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -89,7 +89,7 @@
Bazál:
Trvání inzulínu:
Inzulínosacharidový poměr:
- ŽÁDNÝ PROFIL NENASTAVEN
+ ŽÁDNÝ PROFIL NENASTAVEN
Cíl:
Jednotky:
Cíle
@@ -124,7 +124,7 @@
Stav pumpy dostupný v NS
Hodnota
Zdůvodnění
- Opravdu aktualizovat ošetření z NS
+ Opravdu aktualizovat ošetření z NS
Bezpečnost
Použít kombo bolusy pro >200%
Spustit nový kombo bolus:
@@ -191,8 +191,6 @@
German
Maximální hodnota glykémie ještě v rozsahu
Minimální hodnota glykémie ještě v rozsahu
- Maximální povolený bazál [U/h]
- Maximální bazální IOB [U]
Bulgarian
POTVRDIT
Jazyk
@@ -202,7 +200,7 @@
Odpojeno
DanaR Bluetooth zařízení
DanaR nastavení
- Synchronizovat NS profil do pumpy
+ Synchronizovat profil do pumpy
Nightscout
Absolutní
Komentář
@@ -237,11 +235,9 @@
Dočasný cíl
Dočasný cíl konec
Glukoměr
- Jiný
+ Jiný
Senzor
DanaR profil
- Rychlost absorbce sacharidů
- Rychlost inzulínu[h]
Chyba při nastavení dočasného bazálu
alarm
hodinový bazál
@@ -253,7 +249,7 @@
glykémie
Historie
Alarmy
- Hodinvé bazály
+ Hodinové bazály
Bolusy
Sacharidy
Připojování %d sec
@@ -275,7 +271,7 @@
Stop
Zastaveno
STISKNUTO STOP
- Čekání na pumpu
+ Čekání na pumpu. Klik pro připojení.
Podávání %.2fU inzulínu
Zkontrolovat, zda jsou glykémie a údaje z pumpy viditelné v Nightscoutu
Nastavit vizualizaci a monitoring, analyzovat bazály a koeficienty
@@ -323,7 +319,6 @@
AndroidAPS restartován
Dočasný bazál konec
Dočasný bazál začátek
- Rychlost absorbce sacharidů:
Prosím restartujte Váš telefon nebo restartujte AndroidAPS z nastavení systému jinak nebudou zaznamenány ladící informace (důležité pro sledování a kontrolu, zda algoritmus pracuje správně)
Bazální profil:
Baterie v pumpě vybitá
@@ -385,4 +380,102 @@
Průběžné oznámení
ZASTARALÉ
Místní profil
+ Aktivita
+ Pole %d prvků. Aktuální hodnota:
+ Před jídlem
+ Řečtina
+ Inicializuji ...
+ Dlouhodobý průměr
+ OpenAPS AMA
+ Používat autodetekci senzitivity
+ Data detekce senzitivity
+ Ladící informace
+ %.2f omezeno na %.2f
+ Opravdu aktualizovat dočasné cíle z NS
+ Odstranit záznam:
+ Krátkodobý průměr
+ Dočasný cíl
+ Obnovit dočasné cíle z NS
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ 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
+ Statistika z pumpy
+ Dní
+ Kumulativní TDD
+ Exponenciálně vážené TDD
+ Zastaralá data. Prosím načtěte je znovu
+ Bazál
+ Bolus
+ Datum
+ Koef
+ Celk. denní bazál
+ TBB * 2
+ TDD
+ Pravděpodobně nepřesné při používání bolusů k doplňování
+ Váha
+ Nastavení parametru delta BG
+ Profil
+ Krátké názvy modulů
+ Firmware:
+ Špatné telefonní číslo
+ Chyba nastavování dočasného bazálu
+ Nakopírováno do schránky
+ Kopírovat do schránky
+ Celková doba aktivity inzulínu
+ DIA [h]
+ Toto pole nesmí být prázdné
+ Zobrazit log
+ Maximální povolený bazál [U/h]
+ Maximální bazální IOB [U]
+ Tato hodnota je v kontextu OpenAPS nazývána max basal
+ Tato hodnota je v kontextu OpenAPS nazývána max IOB
+ Povoleny pouze číslice
+ Povoleny pouze čísla v rozsahu %1$s - %2$s
+ Neplatné telefonní číslo
+ Kalibrace odeslána do xDripu
+ Kalibrace
+ Kalibrační glykémie
+ Poslat do xDripu kalibraci %.1f ?
+ xDrip+ není nainstalován
+ xDrip nepřijímá kalibrace
+ Odeslání kalibrace %.2f potvrďte kódem %s
+ Kalibrace odeslána. Příjem musí být v xDripu povolený.
+ Vzdálené kalibrace nejsou povoleny
+ Odpojuji
+ Nezobrazovat znovu
+ Provádím
+ Načítám stav pumpy
+ Pumpa vypnuta
+ Pumpa vypnuta. Klik pro obnovení stavu
+ Nastavuji extended bolus
+ Nastavuji dočasný bazál
+ Zastavuji extended bolus
+ Zastavuji dočasný bazál
+ Aktualizuji bazály
+ Spouštím dodávání %.2fU
+ Čekání na pumpu
+ Heslo do nastavení
+ Nastavení virtuální pumpy
+ Nahrávat status do NS
+ Chybné heslo
+ Odemknout nastavení
+ Blíží se denní limit inzulínu
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index c6313d7dbf..abf9b60b58 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -36,9 +36,9 @@
Kohlehydrate
min
Insulin
- Glukose Art
- Ereigniss Typ
- Ereigniss Zeit
+ Glukose-Art
+ Ereignis-Typ
+ Ereignis-Zeit
Prozent
Notiz
OpenAPS Offline
@@ -94,7 +94,7 @@
Basal IOB
U
Up
- Vituelle Pumpe
+ Virtuelle Pumpe
Reservoir:
xDrip
VIRTUELLE PUMPE
@@ -120,7 +120,7 @@
Setze neuen extended Bolus:
Akzeptiere neue temp Basalrate:
Benutze extended Bolus für hohe temps (\>200%)>
- Möchtest du die Treatments von Nightscout abrufen
+ Möchtest du die Treatments von Nightscout abrufen
Pumpen Status verfügbar in NS
% (100% = current)
Basal Wert
@@ -142,7 +142,7 @@
Gate:
Objective:
Zielsetzungen
- KEIN PROFIL GESETZT
+ KEIN PROFIL GESETZT
NSClient nicht installiert. Record lost!
Verwende absolute statt prozentuelle Basalwerte beim Upload zu NightScout
Bisher noch kein Profil von NS geladen
@@ -221,8 +221,7 @@
Profil anzeigen
DanaR Profil Einstellungen
DIA [h]
- Kohlehydrahte Absorptionsrate
- Manuell
+ Manuell
Einheiten (Tag)
ungültige Eingabe
Wert nicht korrekt gesetzt
@@ -235,7 +234,7 @@
vor h
SMS Kommunikator
erlaubte Telefonnummern
- Nightscout Profil zur Pumpe synchronisieren
+ Profil zur Pumpe synchronisieren
auf Pumpenergebnis warten
Kein Bluetoothadapter gefunden
Remote Bolus nicht erlaubt
@@ -243,7 +242,7 @@
Korean
Limit erreicht
Falsches Pumpen-Passwort!
- Warte auf Pumpe
+ Warte auf Pumpe. Click to refresh.
Korr
Abgabe %.2fU
%.2fU Bolus erfolgreich abgegeben
@@ -309,7 +308,30 @@
Knopf 1
Knopf 2
Knopf 3
- Absorptionsrate:
Config Builder
vor %d min
+ "AKT"
+ "WEAR"
+ "VP"
+ "TREAT"
+ "TT"
+ "TB"
+ "SMS"
+ "SP"
+ "PROF"
+ "HOME"
+ "OBJ"
+ "OAPS"
+ "LOOP"
+ "LP"
+ "DANA"
+ "CONF"
+ "CPP"
+ "CP"
+ Bitte verwenden Sie nur Ziffern.
+ Pflichtfeld
+ Telefonnummer ist nicht gültig.
+ Bitte verwenden Sie nur Ziffern von %1$s - %2$s
+ Warte auf Pumpe
+
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
new file mode 100644
index 0000000000..e4c953dbf2
--- /dev/null
+++ b/app/src/main/res/values-el/strings.xml
@@ -0,0 +1,22 @@
+
+
+ AndroidAPS
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+
\ No newline at end of file
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index ec979b5df3..bd95743215 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -25,7 +25,7 @@
ISF (Factor Sensibilidad Insulina):
Dosis Basal:
Objetivo:
- PERFIL NO ACTIVO
+ PERFIL NO ACTIVO
Insulina:
Carbohidratos:
IOB:
@@ -73,7 +73,7 @@
Razón
Glucosa
Delta
- Avg. delta
+ Delta Media
Config Builder
Objetivos
@@ -103,7 +103,7 @@
Tras procesar limitaciones
Definido por la bomba
Última aceptada
- ¿Quieres actualizar tratamientos de Nightscout?
+ ¿Quieres actualizar tratamientos de Nightscout?
OK
Cancelar
NO APS Seleccionado
@@ -197,8 +197,8 @@
Exportar ajustes
Importar ajustes
German
- Valor mínimo de BG para estar en rango.
- Valor máximo BG para estar en rango.
+ Valor mínimo de BG para estar en rango
+ Valor máximo BG para estar en rango
Max valor U / hr en Basal temporal
Máximos basales IOB para OpenAPS [U]
Bulgarian
@@ -209,7 +209,7 @@
Conectando
Conectado
Desconectado
- Sincronizar perfil NS a bomba
+ Sincronizar perfil a bomba
Ajustes de la bomba DanaR
Nightscout
Acuerdo de licencia de usuario final
@@ -239,18 +239,17 @@
Números de teléfono permitidos
XXXXXXXXXX +; + YYYYYYYYYY
Para entregar bolo% .2fU responder con código% s
- bolo falló
+ Bolo falló
Bolo% .2fU entregado con éxito
Entregando% .2fU
Bolo remoto no permitido
Dedo
Sensor
- Manual
+ Manual
Objetivo temporal
Cancelar Objetivo temporal
Configuración perfil DanaR
DIA [h]
- Tasa de absorción de carbohidratos
No se pudo actualizar el perfil basal
Historial
Recargar
@@ -284,7 +283,7 @@
Oclusión
Detener
Parar pulsado
- Esperando bomba
+ Esperando bomba. Click to refresh.
Va a entregar% .2fU
Configuración de visualización y monitoreo, y el análisis de los basales y ratios
Comprobar que los datos de BG están disponibles en Nightscout, y que los datos de la bomba de insulina se están subiendo
@@ -293,7 +292,7 @@
Entender el lazo abierto, incluidas las recomendaciones de basales temporales
Sobre la base de esa experiencia, decidir valores de máximo basal, y ajustar la bomba y preferencias
Iniciar el bucle cerrado con suspensión con baja glucosa
- Ejecutar en lazo cerrado con max IOB=0 durante unos dias sin demasiados valores bajos de glucosa
+ Ejecutar en lazo cerrado con max IOB=0 durante unos días sin demasiados valores bajos de glucosa
Ajuste del bucle cerrado, aumento máximo IOB por encima de 0 y bajando gradualmente objetivos BG
Funcionando unos cuantos días, y al menos una noche sin alarmas bajas BG, y bajar gradualmente BG
Ajustar los basales y ratios, si es necesario, y luego activar auto-sens
@@ -340,5 +339,71 @@
Para iniciar basal %.2fU/h responder con código %s
Inicio Basal Temporal
Fin Basal Temporal
-
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ Actividad
+ Por favo reinicia el teléfono o AndroidAPS desde ajustes de sistema, sino AndroidAPS no guardara registros (importantes para trazar y verificar que el algoritmo funciona correctamente)
+ Matriz de %d elementos. Valor actual:
+ Ratio Basal:
+ Valor basal menor del mínimo. Perfil no fijado.
+ Perfil Base
+ Botón 1
+ Botón 2
+ Botón 3
+ Inhabilitar EasyUI modo en bomba
+ Habilitar bolos extendidos en bomba
+ Cambio de modo de U/d a U/h en bomba
+ Comida temprano
+ Marca ALTA
+ Iniciando . . .
+ Perfil Local
+ Media Larga Delta
+ Marca BAJO
+ Batería Baja
+ %dmin antes
+ Usar característica AMA autosens
+ Datos Autosens
+ Factor porcentual para multiplicar el perfil base
+ Marcas Alta y Baja para graficos en Sinopsis y Smartwatch
+ Rango de visualización
+ Perfil basal actualizado en bomba
+ Error en ajuste de perfil basal
+ Bomba no iniciada, ¡perfil no ajustado!
+ Error en bomba
+ Apagando Bomba
+ ¿Quiere actualizar objetivo temporal desde Nightscout?
+ Eliminar registro:
+ Enviar todos los datos
+ ENVIAR A BOMBA
+ Media corta delta
+ Bolo:
+ Ultimo BG:
+ %dmin antes
+ Bolo %.2fU enviado correctamente
+ Rango Objetivo:
+ Objetivo Temp
+ Actualizar objetivo temporal desde NS
+
+ Unidades:
+ Sólo se permiten caracteres numéricos
+ Sólo se permiten dígitos en el rango %1$s - %2$s
+ Este campo no puede estar vacío
+ Número de teléfono inválido
+ Esperando bomba
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 8a950cf344..b45c7393b0 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -26,7 +26,7 @@
인슐린 민감도(ISF):
기초주입:
목표:
- NO PROFILE SET
+ NO PROFILE SET
인슐린:
탄수화물:
IOB:
@@ -104,7 +104,7 @@
After processed constraints
Set by pump
최근 주입
- 나이트스카우트에서 Treatments를 새로고치시겠습니까
+ 나이트스카우트에서 Treatments를 새로고치시겠습니까
OK
취소
NO APS SELECTED OR PROVIDED RESULT
@@ -211,7 +211,7 @@
연결중
연결됨
연결 끊김
- NS 프로파일을 펌프에 동기화하기
+ 프로파일을 펌프에 동기화하기
다나R 펌프 설정
Nightscout
End User License Agreement
@@ -248,12 +248,11 @@
원격 식사주입 허용되지 않음
Finger
Sensor
- Manual
+ Manual
Temporary Target
Temporary Target Cancel
DanaR 프로파일 설정
인슐린활동시간(DIA) [h]
- 탄수화물 흡수속도 [g/hour]
기초주입 프로파일 갱신 실패
History
Reload
@@ -287,7 +286,7 @@
막힘
정지
정지 누름
- 펌프를 기다리고 있습니다.
+ 펌프를 기다리고 있습니다. Click to refresh.
%.2fU을 주입합니다
나이트스카우트를 세팅하고, 기초주입과 비율을 분석한다.
나이트스카우트에서 혈당 데이터가 잘 들어오는지, 펌프데이터가 업로드 되는지 확인한다.
@@ -350,7 +349,6 @@
mg/dl
mmol/l
DIA:
- Absorption rate:
Target range:
Edit Base-Basal:
Edit Base-ISF:
@@ -382,4 +380,27 @@
BG:
Last BG:
MDI
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ 필수 입력 항목입니다.
+ 숫자만 입력가능합니다.
+ 이 범위(%1$s - %2$s)안에 해당하는 숫자만 입력가능합니다.
+ 유효한 도메인 이름이 아닙니다.
+ 펌프를 기다리고 있습니다
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 49607a7d65..fe14a6a11b 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -17,6 +17,7 @@
- @string/bg_lang
- @string/es_lang
- @string/ko_lang
+ - @string/el_lang
- en
@@ -25,5 +26,6 @@
- bg
- es
- ko
+ - el
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index e1cd45bf15..91658da020 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -3,6 +3,7 @@
#3F51B5
#303F9F
#FF4081
+ #ff2630
#121212
#779ECB
@@ -16,6 +17,8 @@
#FF478EFF
#FFDD7792
#ca77dd
+ #d43429
+ #ceb812
#c45026
#830400
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4c7be2caad..21bcb13ff5 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -27,7 +27,7 @@
ISF:
Basal:
Target:
- NO PROFILE SET
+ NO PROFILE SET
Insulin:
Carbs:
IOB:
@@ -107,7 +107,8 @@
After processed constraints
Set by pump
Last enacted
- Do you want to refresh treatments from Nightscout
+ Do you want to refresh treatments from Nightscout
+ Do you want to refresh temp targets from Nightscout
OK
Cancel
NO APS SELECTED OR PROVIDED RESULT
@@ -115,6 +116,7 @@
Plugin is disabled
Constraints violation
Bolus delivery error
+ Tempbasal delivery error
Basal value
% (100% = current)
Accept new temp basal:
@@ -206,10 +208,13 @@
Import settings
German
Spanish
+ Greek
The minimum BG value to be in range.
The maximum BG value to be in range.
- Max U/hr a Temp Basal can be set to
- Maximum basal IOB OpenAPS can deliver [U]
+ Max U/hr a Temp Basal can be set to
+ This value is called max basal in OpenAPS context
+ Maximum basal IOB OpenAPS can deliver [U]
+ This value is called Max IOB in OpenAPS context\nThis will default to zero. After several days or weeks, depending on your comfort level, you may choose to adjust this number.
Bulgarian
DISMISS
Language
@@ -218,7 +223,7 @@
Connecting
Connected
Disconnected
- Sync Nightscout profile to pump
+ Sync profile to pump
DanaR pump settings
Nightscout
End User License Agreement
@@ -248,20 +253,22 @@
Allowed phone numbers
+XXXXXXXXXX;+YYYYYYYYYY
To deliver bolus %.2fU reply with code %s
+ To send calibration %.2f reply with code %s
Bolus failed
Bolus %.2fU delivered successfully
+ Going to deliver %.2fU
Bolus %.2fU delivered successfully
Delivering %.2fU
Allow remote commands via SMS
Remote bolus not allowed
Finger
Sensor
- Manual
+ Manual
Temporary Target
Temporary Target Cancel
DanaR profile settings
DIA [h]
- Carbs absorption rate
+ Duration of Insulin Activity
Failed to update basal profile
History
Reload
@@ -296,6 +303,7 @@
Stop
STOP PRESSED
Waiting for pump
+ Waiting for pump. Click to refresh.
Going to deliver %.2fU
Setting up visualization and monitoring, and analyzing basals and ratios
Verify that BG is available in Nightscout, and pump insulin data is being uploaded
@@ -317,6 +325,7 @@
Loop has been enabled
Loop is disabled
Loop is enabled
+ %.2f limited to %.2f
Value %s is out of hard limits
Remote basal setting is not allowed
To start basal %.2fU/h reply with code %s
@@ -359,7 +368,6 @@
mg/dl
mmol/l
DIA:
- Absorption rate:
Target range:
Edit Base-Basal:
Edit Base-ISF:
@@ -397,4 +405,106 @@
%dmin ago
%dmin ago
Local Profile
+ OpenAPS AMA
+ Short avg. delta
+ Long avg. delta
+ Array of %d elements.\nActual value:
+ Autosens data
+ Script debug
+ Use AMA autosens feature
+ 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
+ Shorten tab titles
+ Delta Settings
+ Always use short average delta instead of simple delta
+ Useful when data from unfiltered sources like xDrip gets noisy.
+ Advanced Settings
+ Firmware:
+ Model: %02X Protocol: %02X Code: %02X
+ Profile
+ max_daily_safety_multiplier
+ 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.
+ current_basal_safety_multiplier
+ 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.
+ autosens_max
+ 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.
+ autosens_min
+ 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.
+ autosens_adjust_targets
+ Default value: true\nThis is used to allow autosens to adjust BG targets, in addition to ISF and basals.
+ bolussnooze_dia_divisor
+ 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).
+ min_5m_carbimpact
+ 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.
+ Attention!\nNormally you do not have to change these values below. Please CLICK HERE and READ the text and make sure you UNDERSTAND it before change any of these values.
+ http://openaps.readthedocs.io/en/latest/docs/walkthrough/phase-3/beyond-low-glucose-suspend.html
+ Only numeric digits are allowed.
+ Only numeric digits within the range %1$s - %2$s are allowed.
+ The field must not be empty
+ Phone number not valid
+ Invalid SMS phone number
+ Copy To Clipboard
+ Copied to clipboard
+ Show log
+ Calibration
+ Calibration BG
+ Send calibration %.1f to xDrip?
+ xDrip+ not installed
+ Calibration sent to xDrip
+ Remote calibration not allowed
+ Calibration sent. Receiving must be enabled in xDrip.
+ xDrip is not receiving calibrations
+ Don\'t show again
+ Pump suspended. Click to refresh state
+ Pump suspended
+ Getting pump status
+ Setting temp basal
+ Stopping temp basal
+ Setting extended bolus
+ Stopping extended bolus
+ Updating basal rates
+ Disconnecting
+ Executing
+ Virtual pump settings
+ Upload status to NS
+ Wrong password
+ Password for settings
+ Unlock settings
+ Approaching insulin daily limit
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 4d2ddf901c..5c1f55b5f7 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -8,10 +8,20 @@
- @color/colorAccent
-
+
+
+
diff --git a/app/src/main/res/xml/pref_advanced.xml b/app/src/main/res/xml/pref_advanced.xml
new file mode 100644
index 0000000000..0ebe02c9d1
--- /dev/null
+++ b/app/src/main/res/xml/pref_advanced.xml
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/xml/pref_danarprofile.xml b/app/src/main/res/xml/pref_danarprofile.xml
index b88bb60f2e..5e864d7561 100644
--- a/app/src/main/res/xml/pref_danarprofile.xml
+++ b/app/src/main/res/xml/pref_danarprofile.xml
@@ -7,12 +7,8 @@
android:defaultValue=""
android:key="danarprofile_dia"
android:numeric="decimal"
+ android:dialogMessage="@string/danarprofile_dia_summary"
android:title="@string/danarprofile_dia" />
-
diff --git a/app/src/main/res/xml/pref_nightscout.xml b/app/src/main/res/xml/pref_nightscout.xml
deleted file mode 100644
index 937ba32aa5..0000000000
--- a/app/src/main/res/xml/pref_nightscout.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/xml/pref_openapsama.xml b/app/src/main/res/xml/pref_openapsama.xml
new file mode 100644
index 0000000000..0dce8b7d8a
--- /dev/null
+++ b/app/src/main/res/xml/pref_openapsama.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/pref_openapsma.xml b/app/src/main/res/xml/pref_openapsma.xml
index 1834822070..bb63e1f5b8 100644
--- a/app/src/main/res/xml/pref_openapsma.xml
+++ b/app/src/main/res/xml/pref_openapsma.xml
@@ -24,12 +24,13 @@
android:defaultValue="1"
android:key="openapsma_max_basal"
android:numeric="decimal"
- android:title="@string/openapsma_maxbasal_summary" />
+ android:dialogMessage="@string/openapsma_maxbasal_summary"
+ android:title="@string/openapsma_maxbasal_title" />
+ android:dialogMessage="@string/openapsma_maxiob_summary"
+ android:title="@string/openapsma_maxiob_title" />
-
\ No newline at end of file
diff --git a/app/src/main/res/xml/pref_others.xml b/app/src/main/res/xml/pref_others.xml
index b3e7b8c9bc..47178dbc25 100644
--- a/app/src/main/res/xml/pref_others.xml
+++ b/app/src/main/res/xml/pref_others.xml
@@ -31,14 +31,18 @@
android:title="@string/low_mark"
android:key="low_mark"
android:defaultValue="0"
- android:inputType="number">
+ android:inputType="numberDecimal">
+ android:inputType="numberDecimal">
+
-
\ No newline at end of file
+
diff --git a/app/src/main/res/xml/pref_password.xml b/app/src/main/res/xml/pref_password.xml
new file mode 100644
index 0000000000..f050d0486c
--- /dev/null
+++ b/app/src/main/res/xml/pref_password.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/pref_profile.xml b/app/src/main/res/xml/pref_profile.xml
new file mode 100644
index 0000000000..e8a1289047
--- /dev/null
+++ b/app/src/main/res/xml/pref_profile.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/pref_virtualpump.xml b/app/src/main/res/xml/pref_virtualpump.xml
new file mode 100644
index 0000000000..23d39114b4
--- /dev/null
+++ b/app/src/main/res/xml/pref_virtualpump.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wear/.gitignore b/wear/.gitignore
index 796b96d1c4..b8b317ddfe 100644
--- a/wear/.gitignore
+++ b/wear/.gitignore
@@ -1 +1,6 @@
+*.iml
+.gradle
/build
+*.apk
+build/
+.idea/
diff --git a/wear/build.gradle b/wear/build.gradle
index 97fb7b78c0..1bffedf90b 100644
--- a/wear/build.gradle
+++ b/wear/build.gradle
@@ -30,6 +30,20 @@ android {
resValue "string", "label_xdrip_circle", "AAPS(Circle)"
resValue "string", "label_xdrip_activity", "AAPS Prefs."
resValue "string", "app_settings", "AAPS Settings"
+ buildConfigField "boolean", "WEAR_CONTROL", "true"
+
+ }
+
+ restricted {
+ applicationId = "info.nightscout.androidaps"
+ resValue "string", "label_xdrip", "AAPS"
+ resValue "string", "label_xdrip_large", "AAPS(Large)"
+ resValue "string", "label_xdrip_big_chart", "AAPS(BigChart)"
+ resValue "string", "label_xdrip_circle", "AAPS(Circle)"
+ resValue "string", "label_xdrip_activity", "AAPS Prefs."
+ resValue "string", "app_settings", "AAPS Settings"
+ buildConfigField "boolean", "WEAR_CONTROL", "false"
+
}
}
}
diff --git a/wear/src/main/AndroidManifest.xml b/wear/src/main/AndroidManifest.xml
index e534380a56..8909f8a3f8 100644
--- a/wear/src/main/AndroidManifest.xml
+++ b/wear/src/main/AndroidManifest.xml
@@ -1,7 +1,9 @@
-
+
+
@@ -9,83 +11,124 @@
android:allowBackup="true"
android:icon="@drawable/ic_icon"
android:label="@string/app_name"
- android:theme="@android:style/Theme.DeviceDefault" >
+ android:theme="@android:style/Theme.DeviceDefault">
+ android:name="com.google.android.gms.version"
+ android:value="@integer/google_play_services_version" />
-
-
+
+
+
+
-
-
-
+
+
+
+
-
-
-
+
+
+
+
-
-
-
+
+
+
+
-
-
-
+
+
+ android:name=".interaction.menus.MainMenuActivity"
+ android:label="@string/label_actions_activity">
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
\ No newline at end of file
diff --git a/wear/src/main/java/info/nightscout/androidaps/ListenerService.java b/wear/src/main/java/info/nightscout/androidaps/ListenerService.java
deleted file mode 100644
index d969706e11..0000000000
--- a/wear/src/main/java/info/nightscout/androidaps/ListenerService.java
+++ /dev/null
@@ -1,155 +0,0 @@
-package info.nightscout.androidaps;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.support.v4.content.LocalBroadcastManager;
-
-import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.api.GoogleApiClient;
-import com.google.android.gms.wearable.DataEvent;
-import com.google.android.gms.wearable.DataEventBuffer;
-import com.google.android.gms.wearable.DataMap;
-import com.google.android.gms.wearable.DataMapItem;
-import com.google.android.gms.wearable.Node;
-import com.google.android.gms.wearable.NodeApi;
-import com.google.android.gms.wearable.Wearable;
-import com.google.android.gms.wearable.WearableListenerService;
-
-/**
- * Created by emmablack on 12/26/14.
- */
-public class ListenerService extends WearableListenerService implements GoogleApiClient.ConnectionCallbacks,
- GoogleApiClient.OnConnectionFailedListener {
- private static final String WEARABLE_DATA_PATH = "/nightscout_watch_data";
- private static final String WEARABLE_RESEND_PATH = "/nightscout_watch_data_resend";
- private static final String OPEN_SETTINGS = "/openwearsettings";
- private static final String NEW_STATUS_PATH = "/sendstatustowear";
- public static final String BASAL_DATA_PATH = "/nightscout_watch_basal";
-
-
- private static final String ACTION_RESEND = "com.dexdrip.stephenblack.nightwatch.RESEND_DATA";
- private static final String ACTION_RESEND_BULK = "com.dexdrip.stephenblack.nightwatch.RESEND_BULK_DATA";
- GoogleApiClient googleApiClient;
- private long lastRequest = 0;
-
- public class DataRequester extends AsyncTask {
- Context mContext;
-
- DataRequester(Context context) {
- mContext = context;
- }
-
- @Override
- protected Void doInBackground(Void... params) {
- if (googleApiClient.isConnected()) {
- if (System.currentTimeMillis() - lastRequest > 20 * 1000) { // enforce 20-second debounce period
- lastRequest = System.currentTimeMillis();
-
- NodeApi.GetConnectedNodesResult nodes =
- Wearable.NodeApi.getConnectedNodes(googleApiClient).await();
- for (Node node : nodes.getNodes()) {
- Wearable.MessageApi.sendMessage(googleApiClient, node.getId(), WEARABLE_RESEND_PATH, null);
- }
- }
- } else
- googleApiClient.connect();
- return null;
- }
- }
-
- public void requestData() {
- new DataRequester(this).execute();
- }
-
- public void googleApiConnect() {
- googleApiClient = new GoogleApiClient.Builder(this)
- .addConnectionCallbacks(this)
- .addOnConnectionFailedListener(this)
- .addApi(Wearable.API)
- .build();
- Wearable.MessageApi.addListener(googleApiClient, this);
- }
-
-
- @Override
- public int onStartCommand(Intent intent, int flags, int startId) {
- if (intent != null && ACTION_RESEND.equals(intent.getAction())) {
- googleApiConnect();
- requestData();
- }
- return START_STICKY;
- }
-
- @Override
- public void onDataChanged(DataEventBuffer dataEvents) {
-
- DataMap dataMap;
-
- for (DataEvent event : dataEvents) {
-
- if (event.getType() == DataEvent.TYPE_CHANGED) {
-
-
- String path = event.getDataItem().getUri().getPath();
- if (path.equals(OPEN_SETTINGS)) {
- Intent intent = new Intent(this, NWPreferences.class);
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- startActivity(intent);
-
- } else if (path.equals(NEW_STATUS_PATH)) {
- dataMap = DataMapItem.fromDataItem(event.getDataItem()).getDataMap();
- Intent messageIntent = new Intent();
- messageIntent.setAction(Intent.ACTION_SEND);
- messageIntent.putExtra("status", dataMap.toBundle());
- LocalBroadcastManager.getInstance(this).sendBroadcast(messageIntent);
- } else if (path.equals(BASAL_DATA_PATH)){
- dataMap = DataMapItem.fromDataItem(event.getDataItem()).getDataMap();
- Intent messageIntent = new Intent();
- messageIntent.setAction(Intent.ACTION_SEND);
- messageIntent.putExtra("basals", dataMap.toBundle());
- LocalBroadcastManager.getInstance(this).sendBroadcast(messageIntent);
- } else {
- dataMap = DataMapItem.fromDataItem(event.getDataItem()).getDataMap();
- Intent messageIntent = new Intent();
- messageIntent.setAction(Intent.ACTION_SEND);
- messageIntent.putExtra("data", dataMap.toBundle());
- LocalBroadcastManager.getInstance(this).sendBroadcast(messageIntent);
- }
- }
- }
- }
-
- public static void requestData(Context context) {
- Intent intent = new Intent(context, ListenerService.class);
- intent.setAction(ACTION_RESEND);
- context.startService(intent);
- }
-
- @Override
- public void onConnected(Bundle bundle) {
- requestData();
- }
-
- @Override
- public void onConnectionSuspended(int i) {
-
- }
-
- @Override
- public void onConnectionFailed(ConnectionResult connectionResult) {
-
- }
-
- @Override
- public void onDestroy() {
- super.onDestroy();
- if (googleApiClient != null && googleApiClient.isConnected()) {
- googleApiClient.disconnect();
- }
- if (googleApiClient != null) {
- Wearable.MessageApi.removeListener(googleApiClient, this);
- }
- }
-}
diff --git a/wear/src/main/java/info/nightscout/androidaps/NWPreferences.java b/wear/src/main/java/info/nightscout/androidaps/NWPreferences.java
deleted file mode 100644
index a6e23c23cd..0000000000
--- a/wear/src/main/java/info/nightscout/androidaps/NWPreferences.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package info.nightscout.androidaps;
-
-
-import android.os.Bundle;
-import android.preference.PreferenceActivity;
-
-import info.nightscout.androidaps.R;
-import preference.WearPreferenceActivity;
-
-public class NWPreferences extends WearPreferenceActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.preferences);
- }
-
-}
\ No newline at end of file
diff --git a/wear/src/main/java/info/nightscout/androidaps/BasalWatchData.java b/wear/src/main/java/info/nightscout/androidaps/data/BasalWatchData.java
similarity index 78%
rename from wear/src/main/java/info/nightscout/androidaps/BasalWatchData.java
rename to wear/src/main/java/info/nightscout/androidaps/data/BasalWatchData.java
index 46b913aa7e..ebed526ec8 100644
--- a/wear/src/main/java/info/nightscout/androidaps/BasalWatchData.java
+++ b/wear/src/main/java/info/nightscout/androidaps/data/BasalWatchData.java
@@ -1,4 +1,4 @@
-package info.nightscout.androidaps;
+package info.nightscout.androidaps.data;
/**
* Created by adrian on 18/11/16.
diff --git a/wear/src/main/java/info/nightscout/androidaps/BgWatchData.java b/wear/src/main/java/info/nightscout/androidaps/data/BgWatchData.java
similarity index 95%
rename from wear/src/main/java/info/nightscout/androidaps/BgWatchData.java
rename to wear/src/main/java/info/nightscout/androidaps/data/BgWatchData.java
index 5e6df3c3da..48d106a116 100644
--- a/wear/src/main/java/info/nightscout/androidaps/BgWatchData.java
+++ b/wear/src/main/java/info/nightscout/androidaps/data/BgWatchData.java
@@ -1,4 +1,4 @@
-package info.nightscout.androidaps;
+package info.nightscout.androidaps.data;
/**
* Created by emmablack on 1/7/15.
diff --git a/wear/src/main/java/info/nightscout/androidaps/data/ListenerService.java b/wear/src/main/java/info/nightscout/androidaps/data/ListenerService.java
new file mode 100644
index 0000000000..88c334d07a
--- /dev/null
+++ b/wear/src/main/java/info/nightscout/androidaps/data/ListenerService.java
@@ -0,0 +1,438 @@
+package info.nightscout.androidaps.data;
+
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.support.v4.content.LocalBroadcastManager;
+import android.support.v4.app.NotificationCompat;
+import android.support.v4.app.NotificationManagerCompat;
+
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.wearable.DataEvent;
+import com.google.android.gms.wearable.DataEventBuffer;
+import com.google.android.gms.wearable.DataMap;
+import com.google.android.gms.wearable.DataMapItem;
+import com.google.android.gms.wearable.Node;
+import com.google.android.gms.wearable.NodeApi;
+import com.google.android.gms.wearable.Wearable;
+import com.google.android.gms.wearable.WearableListenerService;
+
+import java.util.concurrent.TimeUnit;
+
+import info.nightscout.androidaps.interaction.AAPSPreferences;
+import info.nightscout.androidaps.R;
+
+/**
+ * Created by emmablack on 12/26/14.
+ */
+public class ListenerService extends WearableListenerService implements GoogleApiClient.ConnectionCallbacks,
+ GoogleApiClient.OnConnectionFailedListener {
+ private static final String WEARABLE_DATA_PATH = "/nightscout_watch_data";
+ private static final String WEARABLE_RESEND_PATH = "/nightscout_watch_data_resend";
+ private static final String WEARABLE_CANCELBOLUS_PATH = "/nightscout_watch_cancel_bolus";
+ public static final String WEARABLE_CONFIRM_ACTIONSTRING_PATH = "/nightscout_watch_confirmactionstring";
+ public static final String WEARABLE_INITIATE_ACTIONSTRING_PATH = "/nightscout_watch_initiateactionstring";
+
+ private static final String OPEN_SETTINGS = "/openwearsettings";
+ private static final String NEW_STATUS_PATH = "/sendstatustowear";
+ public static final String BASAL_DATA_PATH = "/nightscout_watch_basal";
+ public static final String BOLUS_PROGRESS_PATH = "/nightscout_watch_bolusprogress";
+ public static final String ACTION_CONFIRMATION_REQUEST_PATH = "/nightscout_watch_actionconfirmationrequest";
+
+
+ public static final int BOLUS_PROGRESS_NOTIF_ID = 001;
+ public static final int CONFIRM_NOTIF_ID = 002;
+
+ private static final String ACTION_RESEND = "com.dexdrip.stephenblack.nightwatch.RESEND_DATA";
+ private static final String ACTION_CANCELBOLUS = "com.dexdrip.stephenblack.nightwatch.CANCELBOLUS";
+ private static final String ACTION_CONFIRMATION = "com.dexdrip.stephenblack.nightwatch.CONFIRMACTION";
+ private static final String ACTION_INITIATE_ACTION = "com.dexdrip.stephenblack.nightwatch.INITIATE_ACTION";
+
+
+ private static final String ACTION_RESEND_BULK = "com.dexdrip.stephenblack.nightwatch.RESEND_BULK_DATA";
+ GoogleApiClient googleApiClient;
+ private long lastRequest = 0;
+ private DismissThread confirmThread;
+ private DismissThread bolusprogressThread;
+
+
+ public class DataRequester extends AsyncTask {
+ Context mContext;
+
+ DataRequester(Context context) {
+ mContext = context;
+ }
+
+ @Override
+ protected Void doInBackground(Void... params) {
+ if (googleApiClient.isConnected()) {
+ if (System.currentTimeMillis() - lastRequest > 20 * 1000) { // enforce 20-second debounce period
+ lastRequest = System.currentTimeMillis();
+
+ NodeApi.GetConnectedNodesResult nodes =
+ Wearable.NodeApi.getConnectedNodes(googleApiClient).await();
+ for (Node node : nodes.getNodes()) {
+ Wearable.MessageApi.sendMessage(googleApiClient, node.getId(), WEARABLE_RESEND_PATH, null);
+ }
+ }
+ } else {
+ googleApiClient.blockingConnect(15, TimeUnit.SECONDS);
+ if (googleApiClient.isConnected()) {
+ if (System.currentTimeMillis() - lastRequest > 20 * 1000) { // enforce 20-second debounce period
+ lastRequest = System.currentTimeMillis();
+
+ NodeApi.GetConnectedNodesResult nodes =
+ Wearable.NodeApi.getConnectedNodes(googleApiClient).await();
+ for (Node node : nodes.getNodes()) {
+ Wearable.MessageApi.sendMessage(googleApiClient, node.getId(), WEARABLE_RESEND_PATH, null);
+ }
+ }
+ }
+ }
+ return null;
+ }
+ }
+
+ public class BolusCancelTask extends AsyncTask {
+ Context mContext;
+
+ BolusCancelTask(Context context) {
+ mContext = context;
+ }
+
+ @Override
+ protected Void doInBackground(Void... params) {
+ if (googleApiClient.isConnected()) {
+ NodeApi.GetConnectedNodesResult nodes =
+ Wearable.NodeApi.getConnectedNodes(googleApiClient).await();
+ for (Node node : nodes.getNodes()) {
+ Wearable.MessageApi.sendMessage(googleApiClient, node.getId(), WEARABLE_CANCELBOLUS_PATH, null);
+ }
+
+ } else {
+ googleApiClient.blockingConnect(15, TimeUnit.SECONDS);
+ if (googleApiClient.isConnected()) {
+ NodeApi.GetConnectedNodesResult nodes =
+ Wearable.NodeApi.getConnectedNodes(googleApiClient).await();
+ for (Node node : nodes.getNodes()) {
+ Wearable.MessageApi.sendMessage(googleApiClient, node.getId(), WEARABLE_CANCELBOLUS_PATH, null);
+ }
+
+ }
+ }
+ return null;
+ }
+ }
+
+ public class MessageActionTask extends AsyncTask {
+ Context mContext;
+ String mActionstring;
+ String mMessagePath;
+
+ MessageActionTask(Context context, String messagePath, String actionstring) {
+ mContext = context;
+ mActionstring = actionstring;
+ mMessagePath = messagePath;
+ }
+
+ @Override
+ protected Void doInBackground(Void... params) {
+ if (googleApiClient.isConnected()) {
+ NodeApi.GetConnectedNodesResult nodes =
+ Wearable.NodeApi.getConnectedNodes(googleApiClient).await();
+ for (Node node : nodes.getNodes()) {
+ Wearable.MessageApi.sendMessage(googleApiClient, node.getId(), mMessagePath, mActionstring.getBytes());
+ }
+
+ } else {
+ googleApiClient.blockingConnect(15, TimeUnit.SECONDS);
+ if (googleApiClient.isConnected()) {
+ NodeApi.GetConnectedNodesResult nodes =
+ Wearable.NodeApi.getConnectedNodes(googleApiClient).await();
+ for (Node node : nodes.getNodes()) {
+ Wearable.MessageApi.sendMessage(googleApiClient, node.getId(), mMessagePath, mActionstring.getBytes());
+ }
+ }
+ }
+ return null;
+ }
+ }
+
+ public void requestData() {
+ new DataRequester(this).execute();
+ }
+
+ public void cancelBolus() {
+ new BolusCancelTask(this).execute();
+ }
+
+ private void sendConfirmActionstring(String actionstring) {
+ new MessageActionTask(this, WEARABLE_CONFIRM_ACTIONSTRING_PATH, actionstring).execute();
+ }
+
+ private void sendInitiateActionstring(String actionstring) {
+ new MessageActionTask(this, WEARABLE_INITIATE_ACTIONSTRING_PATH, actionstring).execute();
+ }
+
+ public void googleApiConnect() {
+ googleApiClient = new GoogleApiClient.Builder(this)
+ .addConnectionCallbacks(this)
+ .addOnConnectionFailedListener(this)
+ .addApi(Wearable.API)
+ .build();
+ Wearable.MessageApi.addListener(googleApiClient, this);
+ }
+
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ if (intent != null && ACTION_RESEND.equals(intent.getAction())) {
+ googleApiConnect();
+ requestData();
+ } else if(intent != null && ACTION_CANCELBOLUS.equals(intent.getAction())){
+ googleApiConnect();
+
+ //dismiss notification
+ NotificationManagerCompat notificationManager =
+ NotificationManagerCompat.from(ListenerService.this);
+ notificationManager.cancel(BOLUS_PROGRESS_NOTIF_ID);
+
+ //send cancel-request to phone.
+ cancelBolus();
+
+
+ } else if(intent != null && ACTION_CONFIRMATION.equals(intent.getAction())){
+ googleApiConnect();
+
+ //dismiss notification
+ NotificationManagerCompat notificationManager =
+ NotificationManagerCompat.from(ListenerService.this);
+ notificationManager.cancel(CONFIRM_NOTIF_ID);
+
+ String actionstring = intent.getStringExtra("actionstring");
+ sendConfirmActionstring(actionstring);
+
+ } else if(intent != null && ACTION_INITIATE_ACTION.equals(intent.getAction())){
+ googleApiConnect();
+
+ String actionstring = intent.getStringExtra("actionstring");
+ sendInitiateActionstring(actionstring);
+
+ }
+
+ return START_STICKY;
+ }
+
+
+ @Override
+ public void onDataChanged(DataEventBuffer dataEvents) {
+
+ DataMap dataMap;
+
+ for (DataEvent event : dataEvents) {
+
+ if (event.getType() == DataEvent.TYPE_CHANGED) {
+
+
+ String path = event.getDataItem().getUri().getPath();
+ if (path.equals(OPEN_SETTINGS)) {
+ Intent intent = new Intent(this, AAPSPreferences.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ } else if (path.equals(BOLUS_PROGRESS_PATH)) {
+ int progress = DataMapItem.fromDataItem(event.getDataItem()).getDataMap().getInt("progresspercent", 0);
+ String status = DataMapItem.fromDataItem(event.getDataItem()).getDataMap().getString("progressstatus", "");
+ showBolusProgress(progress, status);
+ } else if (path.equals(ACTION_CONFIRMATION_REQUEST_PATH)) {
+ String title = DataMapItem.fromDataItem(event.getDataItem()).getDataMap().getString("title");
+ String message = DataMapItem.fromDataItem(event.getDataItem()).getDataMap().getString("message");
+ String actionstring = DataMapItem.fromDataItem(event.getDataItem()).getDataMap().getString("actionstring");
+ showConfirmationDialog(title, message, actionstring);
+ }else if (path.equals(NEW_STATUS_PATH)) {
+ dataMap = DataMapItem.fromDataItem(event.getDataItem()).getDataMap();
+ Intent messageIntent = new Intent();
+ messageIntent.setAction(Intent.ACTION_SEND);
+ messageIntent.putExtra("status", dataMap.toBundle());
+ LocalBroadcastManager.getInstance(this).sendBroadcast(messageIntent);
+ } else if (path.equals(BASAL_DATA_PATH)){
+ dataMap = DataMapItem.fromDataItem(event.getDataItem()).getDataMap();
+ Intent messageIntent = new Intent();
+ messageIntent.setAction(Intent.ACTION_SEND);
+ messageIntent.putExtra("basals", dataMap.toBundle());
+ LocalBroadcastManager.getInstance(this).sendBroadcast(messageIntent);
+ } else {
+ dataMap = DataMapItem.fromDataItem(event.getDataItem()).getDataMap();
+ Intent messageIntent = new Intent();
+ messageIntent.setAction(Intent.ACTION_SEND);
+ messageIntent.putExtra("data", dataMap.toBundle());
+ LocalBroadcastManager.getInstance(this).sendBroadcast(messageIntent);
+ }
+ }
+ }
+ }
+
+ private void showBolusProgress(int progresspercent, String progresstatus) {
+ Intent cancelIntent = new Intent(this, ListenerService.class);
+ cancelIntent.setAction(ACTION_CANCELBOLUS);
+ PendingIntent cancelPendingIntent = PendingIntent.getService(this, 0, cancelIntent, 0);;
+
+ long[] vibratePattern;
+ boolean vibreate = PreferenceManager
+ .getDefaultSharedPreferences(this).getBoolean("vibrateOnBolus", true);
+ if(vibreate){
+ vibratePattern = new long[]{0, 50, 1000};
+ } else {
+ vibratePattern = new long[]{0, 1, 1000};
+ }
+
+ NotificationCompat.Builder notificationBuilder =
+ new NotificationCompat.Builder(this)
+ .setSmallIcon(R.drawable.ic_icon)
+ .setContentTitle("Bolus Progress")
+ .setContentText(progresspercent + "% - " + progresstatus)
+ .setContentIntent(cancelPendingIntent)
+ .setPriority(NotificationCompat.PRIORITY_MAX)
+ .setVibrate(vibratePattern)
+ .addAction(R.drawable.ic_cancel, "CANCEL BOLUS", cancelPendingIntent);
+
+ NotificationManagerCompat notificationManager =
+ NotificationManagerCompat.from(this);
+
+ if(confirmThread != null){
+ confirmThread.invalidate();
+ }
+ notificationManager.notify(BOLUS_PROGRESS_NOTIF_ID, notificationBuilder.build());
+ notificationManager.cancel(CONFIRM_NOTIF_ID); // multiple watch setup
+
+
+ if (progresspercent == 100){
+ scheduleDismissBolusprogress(5);
+ }
+ }
+
+ private void showConfirmationDialog(String title, String message, String actionstring) {
+
+ if(confirmThread != null){
+ confirmThread.invalidate();
+ }
+
+ Intent actionIntent = new Intent(this, ListenerService.class);
+ actionIntent.setAction(ACTION_CONFIRMATION);
+ actionIntent.putExtra("actionstring", actionstring);
+ PendingIntent actionPendingIntent = PendingIntent.getService(this, 0, actionIntent, PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_UPDATE_CURRENT);;
+
+ long[] vibratePattern = new long[]{0, 100, 50, 100, 50};
+
+ NotificationCompat.Builder notificationBuilder =
+ new NotificationCompat.Builder(this)
+ .setSmallIcon(R.drawable.ic_icon)
+ .setContentTitle(title)
+ .setContentText(message)
+ .setContentIntent(actionPendingIntent)
+ .setPriority(NotificationCompat.PRIORITY_MAX)
+ .setVibrate(vibratePattern)
+ .addAction(R.drawable.ic_confirm, title, actionPendingIntent);
+
+ NotificationManagerCompat notificationManager =
+ NotificationManagerCompat.from(this);
+
+ notificationManager.notify(CONFIRM_NOTIF_ID, notificationBuilder.build());
+
+ // keep the confirmation dialog open for one minute.
+ scheduleDismissConfirm(60);
+
+ }
+
+ private void scheduleDismissConfirm(final int seconds) {
+ if(confirmThread != null){
+ confirmThread.invalidate();
+ }
+ confirmThread = new DismissThread(CONFIRM_NOTIF_ID, seconds);
+ confirmThread.start();
+ }
+
+ private void scheduleDismissBolusprogress(final int seconds) {
+ if(confirmThread != null){
+ confirmThread.invalidate();
+ }
+ bolusprogressThread = new DismissThread(BOLUS_PROGRESS_NOTIF_ID, seconds);
+ bolusprogressThread.start();
+ }
+
+
+
+ private class DismissThread extends Thread{
+ private final int notificationID;
+ private final int seconds;
+ private boolean valid = true;
+
+ DismissThread(int notificationID, int seconds){
+ this.notificationID = notificationID;
+ this.seconds = seconds;
+ }
+
+ public synchronized void invalidate(){
+ valid = false;
+ }
+
+ @Override
+ public void run() {
+ try {
+ Thread.sleep(seconds * 1000);
+ } catch (InterruptedException e) {
+ //e.printStackTrace();
+ }
+ synchronized (this) {
+ if(valid) {
+ NotificationManagerCompat notificationManager =
+ NotificationManagerCompat.from(ListenerService.this);
+ notificationManager.cancel(notificationID);
+ }
+ }
+ }
+ }
+
+ public static void requestData(Context context) {
+ Intent intent = new Intent(context, ListenerService.class);
+ intent.setAction(ACTION_RESEND);
+ context.startService(intent);
+ }
+
+ public static void initiateAction(Context context, String actionstring) {
+ Intent intent = new Intent(context, ListenerService.class);
+ intent.putExtra("actionstring", actionstring);
+ intent.setAction(ACTION_INITIATE_ACTION);
+ context.startService(intent);
+ }
+
+ @Override
+ public void onConnected(Bundle bundle) {
+ requestData();
+ }
+
+ @Override
+ public void onConnectionSuspended(int i) {
+
+ }
+
+ @Override
+ public void onConnectionFailed(ConnectionResult connectionResult) {
+
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ if (googleApiClient != null && googleApiClient.isConnected()) {
+ googleApiClient.disconnect();
+ }
+ if (googleApiClient != null) {
+ Wearable.MessageApi.removeListener(googleApiClient, this);
+ }
+ }
+}
diff --git a/wear/src/main/java/info/nightscout/androidaps/TempWatchData.java b/wear/src/main/java/info/nightscout/androidaps/data/TempWatchData.java
similarity index 83%
rename from wear/src/main/java/info/nightscout/androidaps/TempWatchData.java
rename to wear/src/main/java/info/nightscout/androidaps/data/TempWatchData.java
index 4b0854c3fc..a7a23962eb 100644
--- a/wear/src/main/java/info/nightscout/androidaps/TempWatchData.java
+++ b/wear/src/main/java/info/nightscout/androidaps/data/TempWatchData.java
@@ -1,4 +1,4 @@
-package info.nightscout.androidaps;
+package info.nightscout.androidaps.data;
/**
* Created by adrian on 17/11/16.
diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/AAPSPreferences.java b/wear/src/main/java/info/nightscout/androidaps/interaction/AAPSPreferences.java
new file mode 100644
index 0000000000..39dda741fd
--- /dev/null
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/AAPSPreferences.java
@@ -0,0 +1,39 @@
+package info.nightscout.androidaps.interaction;
+
+
+import android.os.Bundle;
+import android.view.View;
+import android.view.ViewGroup;
+
+import info.nightscout.androidaps.R;
+import preference.WearPreferenceActivity;
+
+public class AAPSPreferences extends WearPreferenceActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.xml.preferences);
+ ViewGroup view = (ViewGroup)getWindow().getDecorView();
+ removeBackgroundRecursively(view);
+ view.setBackground(getResources().getDrawable(R.drawable.settings_background));
+ }
+
+ @Override
+ protected void onPause(){
+ super.onPause();
+ finish();
+ }
+
+ void removeBackgroundRecursively(View parent) {
+ if (parent instanceof ViewGroup) {
+ ViewGroup group = (ViewGroup)parent;
+ for (int i = 0; i < group.getChildCount(); i++) {
+ removeBackgroundRecursively(group.getChildAt(i));
+ }
+ }
+ parent.setBackground(null);
+ }
+
+
+}
\ No newline at end of file
diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/actions/BolusActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/BolusActivity.java
new file mode 100644
index 0000000000..814020d742
--- /dev/null
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/BolusActivity.java
@@ -0,0 +1,123 @@
+package info.nightscout.androidaps.interaction.actions;
+
+
+import android.app.Activity;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.support.wearable.view.DotsPageIndicator;
+import android.support.wearable.view.GridPagerAdapter;
+import android.support.wearable.view.GridViewPager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.text.DecimalFormat;
+
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.data.ListenerService;
+import info.nightscout.androidaps.interaction.utils.PlusMinusEditText;
+import info.nightscout.androidaps.interaction.utils.SafeParse;
+
+/**
+ * Created by adrian on 09/02/17.
+ */
+
+
+public class BolusActivity extends ViewSelectorActivity {
+
+ PlusMinusEditText editCarbs;
+ PlusMinusEditText editInsulin;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.grid_layout);
+ final Resources res = getResources();
+ final GridViewPager pager = (GridViewPager) findViewById(R.id.pager);
+
+ pager.setAdapter(new MyGridViewPagerAdapter());
+ DotsPageIndicator dotsPageIndicator = (DotsPageIndicator) findViewById(R.id.page_indicator);
+ dotsPageIndicator.setPager(pager);
+ }
+
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ finish();
+ }
+
+
+ private class MyGridViewPagerAdapter extends GridPagerAdapter {
+ @Override
+ public int getColumnCount(int arg0) {
+ return 3;
+ }
+
+ @Override
+ public int getRowCount() {
+ return 1;
+ }
+
+ @Override
+ public Object instantiateItem(ViewGroup container, int row, int col) {
+
+ if(col == 0){
+ final View view = getInflatedPlusMinusView(container);
+ double def = 0;
+ if (editInsulin != null){
+ def = SafeParse.stringToDouble(editInsulin.editText.getText().toString());
+ }
+ editInsulin = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 0d, 30d, 0.1d, new DecimalFormat("#0.0"), false);
+ setLabelToPlusMinusView(view, "insulin");
+ container.addView(view);
+ return view;
+ } else if(col == 1){
+ final View view = getInflatedPlusMinusView(container);
+ double def = 0;
+ if (editCarbs != null){
+ def = SafeParse.stringToDouble(editCarbs.editText.getText().toString());
+ }
+ editCarbs = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 0d, 150d, 1d, new DecimalFormat("0"), false);
+ setLabelToPlusMinusView(view, "carbs");
+ container.addView(view);
+ return view;
+ } else {
+
+ final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_send_item, container, false);
+ final ImageView confirmbutton = (ImageView) view.findViewById(R.id.confirmbutton);
+ confirmbutton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ //check if it can happen that the fagment is never created that hold data?
+ // (you have to swipe past them anyways - but still)
+
+ String actionstring = "bolus " +SafeParse.stringToDouble(editInsulin.editText.getText().toString())
+ + " " + SafeParse.stringToInt(editCarbs.editText.getText().toString());
+ ListenerService.initiateAction(BolusActivity.this, actionstring);
+ finish();
+ }
+ });
+ container.addView(view);
+ return view;
+ }
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int row, int col, Object view) {
+ // Handle this to get the data before the view is destroyed?
+ // Object should still be kept by this, just setup for reinit?
+ container.removeView((View)view);
+ }
+
+ @Override
+ public boolean isViewFromObject(View view, Object object) {
+ return view==object;
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/actions/FillActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/FillActivity.java
new file mode 100644
index 0000000000..694dc0283c
--- /dev/null
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/FillActivity.java
@@ -0,0 +1,111 @@
+package info.nightscout.androidaps.interaction.actions;
+
+
+import android.app.Activity;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.support.wearable.view.DotsPageIndicator;
+import android.support.wearable.view.GridPagerAdapter;
+import android.support.wearable.view.GridViewPager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.text.DecimalFormat;
+
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.data.ListenerService;
+import info.nightscout.androidaps.interaction.utils.PlusMinusEditText;
+import info.nightscout.androidaps.interaction.utils.SafeParse;
+
+/**
+ * Created by adrian on 09/02/17.
+ */
+
+
+public class FillActivity extends ViewSelectorActivity {
+
+ PlusMinusEditText editInsulin;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.grid_layout);
+ final Resources res = getResources();
+ final GridViewPager pager = (GridViewPager) findViewById(R.id.pager);
+
+ pager.setAdapter(new MyGridViewPagerAdapter());
+ DotsPageIndicator dotsPageIndicator = (DotsPageIndicator) findViewById(R.id.page_indicator);
+ dotsPageIndicator.setPager(pager);
+ }
+
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ finish();
+ }
+
+
+ private class MyGridViewPagerAdapter extends GridPagerAdapter {
+ @Override
+ public int getColumnCount(int arg0) {
+ return 2;
+ }
+
+ @Override
+ public int getRowCount() {
+ return 1;
+ }
+
+ @Override
+ public Object instantiateItem(ViewGroup container, int row, int col) {
+
+ if(col == 0){
+ final View view = getInflatedPlusMinusView(container);
+ double def = 0d;
+ if (editInsulin != null){
+ def = SafeParse.stringToDouble(editInsulin.editText.getText().toString());
+ }
+ editInsulin = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 0d, 30d, 0.1d, new DecimalFormat("#0.0"), false);
+ setLabelToPlusMinusView(view, "insulin");
+ container.addView(view);
+ return view;
+ } else {
+
+ final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_send_item, container, false);
+ final ImageView confirmbutton = (ImageView) view.findViewById(R.id.confirmbutton);
+ confirmbutton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ //check if it can happen that the fagment is never created that hold data?
+ // (you have to swipe past them anyways - but still)
+
+ String actionstring = "fill " +SafeParse.stringToDouble(editInsulin.editText.getText().toString());
+ ListenerService.initiateAction(FillActivity.this, actionstring);
+ finish();
+ }
+ });
+ container.addView(view);
+ return view;
+ }
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int row, int col, Object view) {
+ // Handle this to get the data before the view is destroyed?
+ // Object should still be kept by this, just setup for reinit?
+ container.removeView((View)view);
+ }
+
+ @Override
+ public boolean isViewFromObject(View view, Object object) {
+ return view==object;
+ }
+
+
+ }
+}
\ No newline at end of file
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
new file mode 100644
index 0000000000..b636869b60
--- /dev/null
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/TempTargetActivity.java
@@ -0,0 +1,167 @@
+package info.nightscout.androidaps.interaction.actions;
+
+
+import android.app.Activity;
+import android.content.SharedPreferences;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.support.wearable.view.DotsPageIndicator;
+import android.support.wearable.view.GridPagerAdapter;
+import android.support.wearable.view.GridViewPager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.text.DecimalFormat;
+
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.data.ListenerService;
+import info.nightscout.androidaps.interaction.utils.PlusMinusEditText;
+import info.nightscout.androidaps.interaction.utils.SafeParse;
+
+import static android.preference.PreferenceManager.getDefaultSharedPreferences;
+
+/**
+ * Created by adrian on 09/02/17.
+ */
+
+
+public class TempTargetActivity extends ViewSelectorActivity {
+
+ PlusMinusEditText lowRange;
+ PlusMinusEditText highRange;
+ PlusMinusEditText time;
+ boolean isMGDL;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.grid_layout);
+ final Resources res = getResources();
+ final GridViewPager pager = (GridViewPager) findViewById(R.id.pager);
+
+ pager.setAdapter(new MyGridViewPagerAdapter());
+ DotsPageIndicator dotsPageIndicator = (DotsPageIndicator) findViewById(R.id.page_indicator);
+ dotsPageIndicator.setPager(pager);
+
+ SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
+ isMGDL = sp.getBoolean("units_mgdl", true);
+ }
+
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ finish();
+ }
+
+
+ private class MyGridViewPagerAdapter extends GridPagerAdapter {
+ @Override
+ public int getColumnCount(int arg0) {
+ return 4;
+ }
+
+ @Override
+ public int getRowCount() {
+ return 1;
+ }
+
+ @Override
+ public Object instantiateItem(ViewGroup container, int row, int col) {
+
+ if(col == 0){
+ final View view = getInflatedPlusMinusView(container);
+ 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);
+ } 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);
+ }
+ setLabelToPlusMinusView(view, "duration");
+ container.addView(view);
+ return view;
+
+ } else if(col == 1){
+ final View view = getInflatedPlusMinusView(container);
+ if (isMGDL){
+ double def = 100;
+ if (lowRange != null){
+ def = SafeParse.stringToDouble(lowRange.editText.getText().toString());
+ }
+ lowRange = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 72d, 180d, 1d, new DecimalFormat("0"), false);
+ } else {
+ double def = 5.5;
+ if (lowRange != null){
+ def = SafeParse.stringToDouble(lowRange.editText.getText().toString());
+ }
+ lowRange = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 4d, 10d, 0.1d, new DecimalFormat("#0.0"), false);
+ }
+ setLabelToPlusMinusView(view, "low");
+ container.addView(view);
+ return view;
+ } else if(col == 2){
+ final View view = getInflatedPlusMinusView(container);
+ if (isMGDL){
+ double def = 100;
+ if (highRange != null){
+ def = SafeParse.stringToDouble(highRange.editText.getText().toString());
+ }
+ highRange = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 72d, 180d, 1d, new DecimalFormat("0"), false);
+ } else {
+ double def = 5.5;
+ if (highRange != null){
+ def = SafeParse.stringToDouble(highRange.editText.getText().toString());
+ }
+ highRange = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 4d, 10d, 0.1d, new DecimalFormat("#0.0"), false);
+ }
+ setLabelToPlusMinusView(view, "high");
+ container.addView(view);
+ return view;
+ }else {
+
+ final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_send_item, container, false);
+ final ImageView confirmbutton = (ImageView) view.findViewById(R.id.confirmbutton);
+ confirmbutton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ //check if it can happen that the fagment is never created that hold data?
+ // (you have to swipe past them anyways - but still)
+
+ String actionstring = "temptarget "
+ + " " + isMGDL
+ + " " + SafeParse.stringToInt(time.editText.getText().toString())
+ + " " + SafeParse.stringToDouble(lowRange.editText.getText().toString())
+ + " " + SafeParse.stringToDouble(highRange.editText.getText().toString())
+ ;
+
+ ListenerService.initiateAction(TempTargetActivity.this, actionstring);
+ finish();
+ }
+ });
+ container.addView(view);
+ return view;
+ }
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int row, int col, Object view) {
+ // Handle this to get the data before the view is destroyed?
+ // Object should still be kept by this, just setup for reinit?
+ container.removeView((View)view);
+ }
+
+ @Override
+ public boolean isViewFromObject(View view, Object object) {
+ return view==object;
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/actions/ViewSelectorActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/ViewSelectorActivity.java
new file mode 100644
index 0000000000..c5100d5a03
--- /dev/null
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/ViewSelectorActivity.java
@@ -0,0 +1,51 @@
+package info.nightscout.androidaps.interaction.actions;
+
+import android.app.Activity;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import info.nightscout.androidaps.R;
+
+/**
+ * Created by adrian on 13/02/17.
+ */
+public class ViewSelectorActivity extends Activity {
+
+
+ View getInflatedPlusMinusView(ViewGroup container) {
+ SharedPreferences sharedPrefs = PreferenceManager
+ .getDefaultSharedPreferences(this);
+ int design = Integer.parseInt(sharedPrefs.getString("input_design", "1"));
+
+ if (design == 2){
+ return LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_editplusminus_item_quickrighty, container, false);
+ } else if (design == 3) {
+ return LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_editplusminus_item_quicklefty, container, false);
+ } else if (design == 4) {
+ return LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_editplusminus_item_viktoria, container, false);
+ }
+
+ //default
+ return LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_editplusminus_item, container, false);
+ }
+
+ void setLabelToPlusMinusView(View view, String labelText){
+ SharedPreferences sharedPrefs = PreferenceManager
+ .getDefaultSharedPreferences(this);
+ int design = Integer.parseInt(sharedPrefs.getString("input_design", "1"));
+
+ if (design == 4){
+ //@LadyViktoria: Here the label can be set differently, if you like.
+ final TextView textView = (TextView) view.findViewById(R.id.label);
+ textView.setText(labelText);
+ } else {
+ final TextView textView = (TextView) view.findViewById(R.id.label);
+ textView.setText(labelText);
+ }
+ }
+
+}
diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/actions/WizardActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/WizardActivity.java
new file mode 100644
index 0000000000..7aa663b341
--- /dev/null
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/WizardActivity.java
@@ -0,0 +1,192 @@
+package info.nightscout.androidaps.interaction.actions;
+
+
+import android.app.Activity;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.support.wearable.view.DotsPageIndicator;
+import android.support.wearable.view.GridPagerAdapter;
+import android.support.wearable.view.GridViewPager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.text.DecimalFormat;
+
+import info.nightscout.androidaps.data.ListenerService;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.interaction.utils.PlusMinusEditText;
+import info.nightscout.androidaps.interaction.utils.SafeParse;
+
+/**
+ * Created by adrian on 09/02/17.
+ */
+
+
+public class WizardActivity extends ViewSelectorActivity {
+
+ PlusMinusEditText editCarbs;
+
+ boolean useBG;
+ boolean includeBolusIOB;
+ boolean includeBasalIOB;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.grid_layout);
+ final Resources res = getResources();
+ final GridViewPager pager = (GridViewPager) findViewById(R.id.pager);
+
+ pager.setAdapter(new MyGridViewPagerAdapter());
+ DotsPageIndicator dotsPageIndicator = (DotsPageIndicator) findViewById(R.id.page_indicator);
+ dotsPageIndicator.setPager(pager);
+ }
+
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ finish();
+ }
+
+
+ private class MyGridViewPagerAdapter extends GridPagerAdapter {
+ @Override
+ public int getColumnCount(int arg0) {
+ return 5;
+ }
+
+ @Override
+ public int getRowCount() {
+ return 1;
+ }
+
+ @Override
+ public Object instantiateItem(ViewGroup container, int row, int col) {
+
+ if(col == 0){
+ final View view = getInflatedPlusMinusView(container);
+ if (editCarbs == null) {
+ editCarbs = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, 0d, 0d, 150d, 1d, new DecimalFormat("0"), false);
+ } else {
+ double def = SafeParse.stringToDouble(editCarbs.editText.getText().toString());
+ editCarbs = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 0d, 150d, 1d, new DecimalFormat("0"), false);
+
+ }
+ setLabelToPlusMinusView(view, "carbs");
+ container.addView(view);
+ return view;
+ } else if(col == 1){
+ final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_toggle_item, container, false);
+ final TextView textView = (TextView) view.findViewById(R.id.label);
+ textView.setText("include BG?");
+
+ final ImageView togglebutton = (ImageView) view.findViewById(R.id.togglebutton);
+ if(useBG){
+ togglebutton.setImageResource(R.drawable.ic_toggle_on);
+ } else {
+ togglebutton.setImageResource(R.drawable.ic_toggle_off);
+ }
+ togglebutton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ useBG = !useBG;
+ if(useBG){
+ togglebutton.setImageResource(R.drawable.ic_toggle_on);
+ } else {
+ togglebutton.setImageResource(R.drawable.ic_toggle_off);
+ }
+ }
+ });
+ container.addView(view);
+ return view;
+ } else if(col == 2){
+ final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_toggle_item, container, false);
+ final TextView textView = (TextView) view.findViewById(R.id.label);
+ textView.setText("Bolus IOB?");
+
+ final ImageView togglebutton = (ImageView) view.findViewById(R.id.togglebutton);
+ if(includeBolusIOB){
+ togglebutton.setImageResource(R.drawable.ic_toggle_on);
+ } else {
+ togglebutton.setImageResource(R.drawable.ic_toggle_off);
+ }
+ togglebutton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ includeBolusIOB = !includeBolusIOB;
+ if(includeBolusIOB){
+ togglebutton.setImageResource(R.drawable.ic_toggle_on);
+ } else {
+ togglebutton.setImageResource(R.drawable.ic_toggle_off);
+ }
+ }
+ });
+ container.addView(view);
+ return view;
+ } else if(col == 3){
+ final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_toggle_item, container, false);
+ final TextView textView = (TextView) view.findViewById(R.id.label);
+ textView.setText("Basal IOB?");
+
+ final ImageView togglebutton = (ImageView) view.findViewById(R.id.togglebutton);
+ if(includeBasalIOB){
+ togglebutton.setImageResource(R.drawable.ic_toggle_on);
+ } else {
+ togglebutton.setImageResource(R.drawable.ic_toggle_off);
+ }
+ togglebutton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ includeBasalIOB = !includeBasalIOB;
+ if(includeBasalIOB){
+ togglebutton.setImageResource(R.drawable.ic_toggle_on);
+ } else {
+ togglebutton.setImageResource(R.drawable.ic_toggle_off);
+ }
+ }
+ });
+ container.addView(view);
+ return view;
+ } else {
+
+ final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_send_item, container, false);
+ final ImageView confirmbutton = (ImageView) view.findViewById(R.id.confirmbutton);
+ confirmbutton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ //check if it can happen that the fagment is never created that hold data?
+ // (you have to swipe past them anyways - but still)
+
+ String actionstring = "wizard " + SafeParse.stringToInt(editCarbs.editText.getText().toString())
+ + " " + useBG
+ + " " + includeBolusIOB
+ + " " + includeBasalIOB;
+ ListenerService.initiateAction(WizardActivity.this, actionstring);
+ finish();
+ }
+ });
+ container.addView(view);
+ return view;
+ }
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int row, int col, Object view) {
+ // Handle this to get the data before the view is destroyed?
+ // Object should still be kept by this, just setup for reinit?
+ container.removeView((View)view);
+ }
+
+ @Override
+ public boolean isViewFromObject(View view, Object object) {
+ return view==object;
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/menus/FillMenuActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/menus/FillMenuActivity.java
new file mode 100644
index 0000000000..da8daa80cb
--- /dev/null
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/menus/FillMenuActivity.java
@@ -0,0 +1,45 @@
+package info.nightscout.androidaps.interaction.menus;
+
+import android.content.Intent;
+
+import info.nightscout.androidaps.data.ListenerService;
+import info.nightscout.androidaps.interaction.actions.FillActivity;
+import info.nightscout.androidaps.interaction.utils.MenuListActivity;
+
+/**
+ * Created by adrian on 09/02/17.
+ */
+
+public class FillMenuActivity extends MenuListActivity {
+
+ @Override
+ protected String[] getElements() {
+ return new String[] {
+ "Preset 1",
+ "Preset 2",
+ "Preset 3",
+ "Free amount"
+ };
+ }
+
+ @Override
+ protected void doAction(int position) {
+ switch (position) {
+ case 0:
+ ListenerService.initiateAction(this, "fillpreset 1");
+ break;
+ case 1:
+ ListenerService.initiateAction(this, "fillpreset 2");
+ break;
+ case 2:
+ ListenerService.initiateAction(this, "fillpreset 3");
+ break;
+ case 3:
+ Intent intent = new Intent(this, FillActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ this.startActivity(intent);
+ break;
+ }
+
+ }
+}
diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuActivity.java
new file mode 100644
index 0000000000..aeea844f42
--- /dev/null
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuActivity.java
@@ -0,0 +1,112 @@
+package info.nightscout.androidaps.interaction.menus;
+
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+
+import info.nightscout.androidaps.BuildConfig;
+import info.nightscout.androidaps.data.ListenerService;
+import info.nightscout.androidaps.interaction.AAPSPreferences;
+import info.nightscout.androidaps.interaction.actions.BolusActivity;
+import info.nightscout.androidaps.interaction.actions.TempTargetActivity;
+import info.nightscout.androidaps.interaction.utils.MenuListActivity;
+import info.nightscout.androidaps.interaction.actions.WizardActivity;
+
+/**
+ * Created by adrian on 09/02/17.
+ */
+
+public class MainMenuActivity extends MenuListActivity {
+
+ SharedPreferences sp;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ sp = PreferenceManager.getDefaultSharedPreferences(this);
+ super.onCreate(savedInstanceState);
+ ListenerService.requestData(this);
+ }
+
+ @Override
+ protected String[] getElements() {
+
+ if(!BuildConfig.WEAR_CONTROL){
+ return new String[] {
+ "Settings",
+ "Re-Sync"};
+ }
+
+
+ boolean showPrimeFill = sp.getBoolean("primefill", false);
+ return new String[] {
+ "TempT",
+ "Bolus",
+ "Wizard",
+ "Settings",
+ "Re-Sync",
+ "Status",
+ showPrimeFill?"Prime/Fill":""};
+ }
+
+ @Override
+ protected void doAction(int position) {
+
+ Intent intent;
+
+ if(!BuildConfig.WEAR_CONTROL) {
+ switch (position) {
+ case 0:
+ intent = new Intent(this, AAPSPreferences.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ this.startActivity(intent);
+ break;
+ case 1:
+ ListenerService.requestData(this);
+ break;
+ }
+ return;
+ }
+
+
+ switch (position) {
+ case 0:
+ intent = new Intent(this, TempTargetActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ this.startActivity(intent);
+ break;
+ case 1:
+ intent = new Intent(this, BolusActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ this.startActivity(intent);
+ break;
+ case 2:
+ intent = new Intent(this, WizardActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ this.startActivity(intent);
+ break;
+ case 3:
+ intent = new Intent(this, AAPSPreferences.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ this.startActivity(intent);
+ break;
+ case 4:
+ ListenerService.requestData(this);
+ break;
+ case 5:
+ intent = new Intent(this, StatusMenuActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ this.startActivity(intent);
+ break;
+ case 6:
+ boolean showPrimeFill = sp.getBoolean("primefill", false);
+ if(showPrimeFill) {
+ intent = new Intent(this, FillMenuActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ this.startActivity(intent);
+ }
+ break;
+ }
+
+ }
+}
diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuRestrictedActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuRestrictedActivity.java
new file mode 100644
index 0000000000..779e9611d2
--- /dev/null
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuRestrictedActivity.java
@@ -0,0 +1,53 @@
+package info.nightscout.androidaps.interaction.menus;
+
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+
+import info.nightscout.androidaps.data.ListenerService;
+import info.nightscout.androidaps.interaction.AAPSPreferences;
+import info.nightscout.androidaps.interaction.actions.BolusActivity;
+import info.nightscout.androidaps.interaction.actions.TempTargetActivity;
+import info.nightscout.androidaps.interaction.actions.WizardActivity;
+import info.nightscout.androidaps.interaction.utils.MenuListActivity;
+
+/**
+ * Created by adrian on 09/02/17.
+ */
+
+public class MainMenuRestrictedActivity extends MenuListActivity {
+
+ SharedPreferences sp;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ sp = PreferenceManager.getDefaultSharedPreferences(this);
+ super.onCreate(savedInstanceState);
+ ListenerService.requestData(this);
+ }
+
+ @Override
+ protected String[] getElements() {
+ return new String[] {
+ "Settings",
+ "Re-Sync"};
+ }
+
+ @Override
+ protected void doAction(int position) {
+
+ Intent intent;
+ switch (position) {
+ case 0:
+ intent = new Intent(this, AAPSPreferences.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ this.startActivity(intent);
+ break;
+ case 1:
+ ListenerService.requestData(this);
+ break;
+ }
+
+ }
+}
diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/menus/StatusMenuActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/menus/StatusMenuActivity.java
new file mode 100644
index 0000000000..b8301400e2
--- /dev/null
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/menus/StatusMenuActivity.java
@@ -0,0 +1,36 @@
+package info.nightscout.androidaps.interaction.menus;
+
+import info.nightscout.androidaps.data.ListenerService;
+import info.nightscout.androidaps.interaction.utils.MenuListActivity;
+
+/**
+ * Created by adrian on 09/02/17.
+ */
+
+public class StatusMenuActivity extends MenuListActivity {
+
+ @Override
+ protected String[] getElements() {
+ return new String[] {
+ "Pump",
+ "Loop",
+ "Targets"};
+ }
+
+ @Override
+ protected void doAction(int position) {
+ switch (position) {
+
+ case 0:
+ ListenerService.initiateAction(this, "status pump");
+ break;
+ case 1:
+ ListenerService.initiateAction(this, "status loop");
+ break;
+ case 2:
+ ListenerService.initiateAction(this, "status targets");
+ break;
+ }
+
+ }
+}
diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/utils/MenuListActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/utils/MenuListActivity.java
new file mode 100644
index 0000000000..d151196091
--- /dev/null
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/utils/MenuListActivity.java
@@ -0,0 +1,120 @@
+package info.nightscout.androidaps.interaction.utils;
+
+import android.app.Activity;
+import android.content.Context;
+import android.os.Bundle;
+import android.support.wearable.view.WearableListView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import info.nightscout.androidaps.R;
+
+/**
+ * Created by adrian on 08/02/17.
+ */
+
+public abstract class MenuListActivity extends Activity
+ implements WearableListView.ClickListener {
+
+ String[] elements;
+
+ protected abstract String[] getElements();
+
+ protected abstract void doAction(int position);
+
+ @Override
+ protected void onPause(){
+ super.onPause();
+ finish();
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ elements = getElements();
+ setContentView(R.layout.actions_list_activity);
+
+ // Get the list component from the layout of the activity
+ WearableListView listView =
+ (WearableListView) findViewById(R.id.wearable_list);
+
+ // Assign an adapter to the list
+ listView.setAdapter(new Adapter(this, elements));
+
+ // Set a click listener
+ listView.setClickListener(this);
+ }
+
+ // WearableListView click listener
+ @Override
+ public void onClick(WearableListView.ViewHolder v) {
+ Integer tag = (Integer) v.itemView.getTag();
+ doAction(tag);
+ //ActionsDefinitions.doAction(v.getAdapterPosition(), this);
+ finish();
+ }
+
+ @Override
+ public void onTopEmptyRegionClick() {
+ }
+
+
+ private static final class Adapter extends WearableListView.Adapter {
+ private String[] mDataset;
+ private final Context mContext;
+ private final LayoutInflater mInflater;
+
+ // Provide a suitable constructor (depends on the kind of dataset)
+ public Adapter(Context context, String[] dataset) {
+ mContext = context;
+ mInflater = LayoutInflater.from(context);
+ mDataset = dataset;
+ }
+
+ // Provide a reference to the type of views you're using
+ public static class ItemViewHolder extends WearableListView.ViewHolder {
+ private TextView textView;
+
+ public ItemViewHolder(View itemView) {
+ super(itemView);
+ // find the text view within the custom item's layout
+ textView = (TextView) itemView.findViewById(R.id.actionitem);
+ }
+ }
+
+ // Create new views for list items
+ // (invoked by the WearableListView's layout manager)
+ @Override
+ public WearableListView.ViewHolder onCreateViewHolder(ViewGroup parent,
+ int viewType) {
+ // Inflate our custom layout for list items
+ return new ItemViewHolder(mInflater.inflate(R.layout.list_item, null));
+ }
+
+ // Replace the contents of a list item
+ // Instead of creating new views, the list tries to recycle existing ones
+ // (invoked by the WearableListView's layout manager)
+ @Override
+ public void onBindViewHolder(WearableListView.ViewHolder holder,
+ int position) {
+ // retrieve the text view
+ ItemViewHolder itemHolder = (ItemViewHolder) holder;
+ TextView view = itemHolder.textView;
+ // replace text contents
+ view.setText(mDataset[position]);
+ // replace list item's metadata
+ holder.itemView.setTag(position);
+ }
+
+ // Return the size of your dataset
+ // (invoked by the WearableListView's layout manager)
+ @Override
+ public int getItemCount() {
+ return mDataset.length;
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/utils/PlusMinusEditText.java b/wear/src/main/java/info/nightscout/androidaps/interaction/utils/PlusMinusEditText.java
new file mode 100644
index 0000000000..0cbae9fecf
--- /dev/null
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/utils/PlusMinusEditText.java
@@ -0,0 +1,196 @@
+package info.nightscout.androidaps.interaction.utils;
+
+import android.os.Handler;
+import android.os.Message;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.text.NumberFormat;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
+
+/**
+ * Created by mike on 28.06.2016.
+ */
+public class PlusMinusEditText implements View.OnKeyListener,
+ View.OnTouchListener, View.OnClickListener {
+
+ Integer editTextID;
+ public TextView editText;
+ ImageView minusImage;
+ ImageView plusImage;
+
+ Double value;
+ Double minValue = 0d;
+ Double maxValue = 1d;
+ Double step = 1d;
+ NumberFormat formater;
+ boolean allowZero = false;
+
+ private Handler mHandler;
+ private ScheduledExecutorService mUpdater;
+
+ private class UpdateCounterTask implements Runnable {
+ private boolean mInc;
+ private int repeated = 0;
+ private int multiplier = 1;
+
+ private final int doubleLimit = 5;
+
+ public UpdateCounterTask(boolean inc) {
+ mInc = inc;
+ }
+
+ public void run() {
+ Message msg = new Message();
+ if (repeated % doubleLimit == 0) multiplier *= 2;
+ repeated++;
+ msg.arg1 = multiplier;
+ msg.arg2 = repeated;
+ if (mInc) {
+ msg.what = MSG_INC;
+ } else {
+ msg.what = MSG_DEC;
+ }
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ private static final int MSG_INC = 0;
+ private static final int MSG_DEC = 1;
+
+ public PlusMinusEditText(View view, int editTextID, int plusID, int minusID, Double initValue, Double minValue, Double maxValue, Double step, NumberFormat formater, boolean allowZero) {
+ editText = (TextView) view.findViewById(editTextID);
+ minusImage = (ImageView) view.findViewById(minusID);
+ plusImage = (ImageView) view.findViewById(plusID);
+
+ this.value = initValue;
+ this.minValue = minValue;
+ this.maxValue = maxValue;
+ this.step = step;
+ this.formater = formater;
+ this.allowZero = allowZero;
+
+ mHandler = new Handler() {
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case MSG_INC:
+ inc(msg.arg1);
+ return;
+ case MSG_DEC:
+ dec(msg.arg1);
+ return;
+ }
+ super.handleMessage(msg);
+ }
+ };
+
+ minusImage.setOnTouchListener(this);
+ minusImage.setOnKeyListener(this);
+ minusImage.setOnClickListener(this);
+ plusImage.setOnTouchListener(this);
+ plusImage.setOnKeyListener(this);
+ plusImage.setOnClickListener(this);
+ updateEditText();
+ }
+
+ public void setValue(Double value) {
+ this.value = value;
+ updateEditText();
+ }
+
+ public Double getValue() {
+ return value;
+ }
+
+ public void setStep(Double step) {
+ this.step = step;
+ }
+
+ private void inc(int multiplier) {
+ value += step * multiplier;
+ if (value > maxValue) {
+ value = maxValue;
+ stopUpdating();
+ }
+ updateEditText();
+ }
+
+ private void dec( int multiplier) {
+ value -= step * multiplier;
+ if (value < minValue) {
+ value = minValue;
+ stopUpdating();
+ }
+ updateEditText();
+ }
+
+ private void updateEditText() {
+ if (value == 0d && !allowZero)
+ editText.setText("");
+ else
+ editText.setText(formater.format(value));
+ }
+
+ private void startUpdating(boolean inc) {
+ if (mUpdater != null) {
+ return;
+ }
+ mUpdater = Executors.newSingleThreadScheduledExecutor();
+ mUpdater.scheduleAtFixedRate(new UpdateCounterTask(inc), 200, 200,
+ TimeUnit.MILLISECONDS);
+ }
+
+ private void stopUpdating() {
+ if (mUpdater != null) {
+ mUpdater.shutdownNow();
+ mUpdater = null;
+ }
+ }
+
+ @Override
+ public void onClick(View v) {
+ if (mUpdater == null) {
+ if (v == plusImage) {
+ inc(1);
+ } else {
+ dec(1);
+ }
+ }
+ }
+
+ @Override
+ public boolean onKey(View v, int keyCode, KeyEvent event) {
+ boolean isKeyOfInterest = keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_ENTER;
+ boolean isReleased = event.getAction() == KeyEvent.ACTION_UP;
+ boolean isPressed = event.getAction() == KeyEvent.ACTION_DOWN
+ && event.getAction() != KeyEvent.ACTION_MULTIPLE;
+
+ if (isKeyOfInterest && isReleased) {
+ stopUpdating();
+ } else if (isKeyOfInterest && isPressed) {
+ startUpdating(v == plusImage);
+ }
+ return false;
+ }
+
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ boolean isReleased = event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL;
+ boolean isPressed = event.getAction() == MotionEvent.ACTION_DOWN;
+
+ if (isReleased) {
+ stopUpdating();
+ } else if (isPressed) {
+ startUpdating(v == plusImage);
+ }
+ return false;
+ }
+
+}
diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/utils/SafeParse.java b/wear/src/main/java/info/nightscout/androidaps/interaction/utils/SafeParse.java
new file mode 100644
index 0000000000..0d654567b0
--- /dev/null
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/utils/SafeParse.java
@@ -0,0 +1,36 @@
+package info.nightscout.androidaps.interaction.utils;
+
+/**
+ * Created by mike on 23.06.2016.
+ */
+public class SafeParse {
+ public static Double stringToDouble(String input) {
+ Double result = 0d;
+ input = input.replace(",", ".");
+ try {
+ result = Double.parseDouble(input);
+ } catch (Exception e) {
+ }
+ return result;
+ }
+
+ public static Integer stringToInt(String input) {
+ Integer result = 0;
+ input = input.replace(",", ".");
+ try {
+ result = Integer.parseInt(input);
+ } catch (Exception e) {
+ }
+ return result;
+ }
+
+ public static Long stringToLong(String input) {
+ Long result = 0L;
+ input = input.replace(",", ".");
+ try {
+ result = Long.parseLong(input);
+ } catch (Exception e) {
+ }
+ return result;
+ }
+}
diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/utils/WearableListItemLayout.java b/wear/src/main/java/info/nightscout/androidaps/interaction/utils/WearableListItemLayout.java
new file mode 100644
index 0000000000..89925cc9b8
--- /dev/null
+++ b/wear/src/main/java/info/nightscout/androidaps/interaction/utils/WearableListItemLayout.java
@@ -0,0 +1,63 @@
+package info.nightscout.androidaps.interaction.utils;
+
+import android.content.Context;
+import android.graphics.drawable.GradientDrawable;
+import android.support.wearable.view.WearableListView;
+import android.util.AttributeSet;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import info.nightscout.androidaps.R;
+
+/**
+ * Created by adrian on 08/02/17.
+ */
+
+public class WearableListItemLayout extends LinearLayout
+ implements WearableListView.OnCenterProximityListener {
+
+ //private ImageView mCircle;
+ private TextView mName;
+
+ private final float mFadedTextAlpha;
+ private final int mFadedCircleColor;
+ private final int mChosenCircleColor;
+
+ public WearableListItemLayout(Context context) {
+ this(context, null);
+ }
+
+ public WearableListItemLayout(Context context, AttributeSet attrs) {
+ this(context, attrs, 0);
+ }
+
+ public WearableListItemLayout(Context context, AttributeSet attrs,
+ int defStyle) {
+ super(context, attrs, defStyle);
+
+ mFadedTextAlpha = 40 / 100f;
+ mFadedCircleColor = getResources().getColor(R.color.grey);
+ mChosenCircleColor = getResources().getColor(R.color.blue);
+ }
+
+ // Get references to the icon and text in the item layout definition
+ @Override
+ protected void onFinishInflate() {
+ super.onFinishInflate();
+ //mCircle = (ImageView) findViewById(R.id.circle);
+ mName = (TextView) findViewById(R.id.actionitem);
+ }
+
+ @Override
+ public void onCenterPosition(boolean animate) {
+ mName.setAlpha(1f);
+ //((GradientDrawable) mCircle.getDrawable()).setColor(mChosenCircleColor);
+ }
+
+ @Override
+ public void onNonCenterPosition(boolean animate) {
+ //((GradientDrawable) mCircle.getDrawable()).setColor(mFadedCircleColor);
+ mName.setAlpha(mFadedTextAlpha);
+ }
+}
diff --git a/wear/src/main/java/info/nightscout/androidaps/BIGChart.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BIGChart.java
similarity index 96%
rename from wear/src/main/java/info/nightscout/androidaps/BIGChart.java
rename to wear/src/main/java/info/nightscout/androidaps/watchfaces/BIGChart.java
index 637908600e..866f559a9f 100644
--- a/wear/src/main/java/info/nightscout/androidaps/BIGChart.java
+++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BIGChart.java
@@ -1,4 +1,4 @@
-package info.nightscout.androidaps;
+package info.nightscout.androidaps.watchfaces;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -39,6 +39,12 @@ import com.ustwo.clockwise.common.WatchShape;
import java.util.ArrayList;
import java.util.Date;
+import info.nightscout.androidaps.data.BasalWatchData;
+import info.nightscout.androidaps.data.BgWatchData;
+import info.nightscout.androidaps.data.ListenerService;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.data.TempWatchData;
+import info.nightscout.androidaps.interaction.menus.MainMenuActivity;
import lecho.lib.hellocharts.view.LineChartView;
/**
@@ -83,6 +89,7 @@ public class BIGChart extends WatchFace implements SharedPreferences.OnSharedPre
private String externalStatusString = "no status";
private TextView statusView;
private long chartTapTime = 0l;
+ private long sgvTapTime = 0l;
@Override
public void onCreate() {
@@ -143,6 +150,8 @@ public class BIGChart extends WatchFace implements SharedPreferences.OnSharedPre
@Override
protected void onTapCommand(int tapType, int x, int y, long eventTime) {
+ int extra = mSgv!=null?(mSgv.getRight() - mSgv.getLeft())/2:0;
+
if (tapType == TAP_TYPE_TAP&&
x >=chart.getLeft() &&
x <= chart.getRight()&&
@@ -152,6 +161,17 @@ public class BIGChart extends WatchFace implements SharedPreferences.OnSharedPre
changeChartTimeframe();
}
chartTapTime = eventTime;
+ } else if (tapType == TAP_TYPE_TAP&&
+ x + extra >=mSgv.getLeft() &&
+ x - extra <= mSgv.getRight()&&
+ y >= mSgv.getTop() &&
+ y <= mSgv.getBottom()){
+ if (eventTime - sgvTapTime < 800){
+ Intent intent = new Intent(this, MainMenuActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ }
+ sgvTapTime = eventTime;
}
}
diff --git a/wear/src/main/java/info/nightscout/androidaps/BaseWatchFace.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java
similarity index 98%
rename from wear/src/main/java/info/nightscout/androidaps/BaseWatchFace.java
rename to wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java
index ce594f1d2f..d3d1b47c78 100644
--- a/wear/src/main/java/info/nightscout/androidaps/BaseWatchFace.java
+++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java
@@ -1,4 +1,4 @@
-package info.nightscout.androidaps;
+package info.nightscout.androidaps.watchfaces;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -34,6 +34,11 @@ import com.ustwo.clockwise.common.WatchShape;
import java.util.ArrayList;
import java.util.Date;
+import info.nightscout.androidaps.data.BasalWatchData;
+import info.nightscout.androidaps.data.BgWatchData;
+import info.nightscout.androidaps.data.ListenerService;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.data.TempWatchData;
import lecho.lib.hellocharts.view.LineChartView;
/**
diff --git a/wear/src/main/java/info/nightscout/androidaps/BgGraphBuilder.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BgGraphBuilder.java
similarity index 98%
rename from wear/src/main/java/info/nightscout/androidaps/BgGraphBuilder.java
rename to wear/src/main/java/info/nightscout/androidaps/watchfaces/BgGraphBuilder.java
index 825c256678..6a0f9679a7 100644
--- a/wear/src/main/java/info/nightscout/androidaps/BgGraphBuilder.java
+++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BgGraphBuilder.java
@@ -1,9 +1,8 @@
-package info.nightscout.androidaps;
+package info.nightscout.androidaps.watchfaces;
import android.content.Context;
import android.graphics.DashPathEffect;
import android.preference.PreferenceManager;
-import android.support.v4.content.ContextCompat;
import android.text.format.DateFormat;
import java.text.SimpleDateFormat;
@@ -14,6 +13,9 @@ import java.util.GregorianCalendar;
import java.util.List;
import java.util.TimeZone;
+import info.nightscout.androidaps.data.BasalWatchData;
+import info.nightscout.androidaps.data.BgWatchData;
+import info.nightscout.androidaps.data.TempWatchData;
import lecho.lib.hellocharts.model.Axis;
import lecho.lib.hellocharts.model.AxisValue;
import lecho.lib.hellocharts.model.Line;
diff --git a/wear/src/main/java/info/nightscout/androidaps/CircleWatchface.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/CircleWatchface.java
similarity index 94%
rename from wear/src/main/java/info/nightscout/androidaps/CircleWatchface.java
rename to wear/src/main/java/info/nightscout/androidaps/watchfaces/CircleWatchface.java
index c81b6de6f1..795a1221b3 100644
--- a/wear/src/main/java/info/nightscout/androidaps/CircleWatchface.java
+++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/CircleWatchface.java
@@ -1,4 +1,4 @@
-package info.nightscout.androidaps;
+package info.nightscout.androidaps.watchfaces;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -17,6 +17,7 @@ import android.os.Bundle;
import android.os.PowerManager;
import android.preference.PreferenceManager;
import android.support.v4.content.LocalBroadcastManager;
+import android.support.wearable.watchface.WatchFaceStyle;
import android.util.Log;
import android.util.TypedValue;
import android.view.Display;
@@ -35,6 +36,10 @@ import java.util.Date;
import java.util.HashSet;
import java.util.TreeSet;
+import info.nightscout.androidaps.data.BgWatchData;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.interaction.menus.MainMenuActivity;
+
public class CircleWatchface extends WatchFace implements SharedPreferences.OnSharedPreferenceChangeListener {
public final float PADDING = 20f;
@@ -79,6 +84,8 @@ public class CircleWatchface extends WatchFace implements SharedPreferences.OnSh
private View myLayout;
protected SharedPreferences sharedPrefs;
+ private TextView mSgv;
+ private long sgvTapTime = 0;
@Override
@@ -144,7 +151,7 @@ public class CircleWatchface extends WatchFace implements SharedPreferences.OnSh
// prepare fields
TextView textView = null;
-
+ mSgv = (TextView) myLayout.findViewById(R.id.sgvString);
textView = (TextView) myLayout.findViewById(R.id.sgvString);
if (sharedPrefs.getBoolean("showBG", true)) {
textView.setVisibility(View.VISIBLE);
@@ -342,7 +349,7 @@ public class CircleWatchface extends WatchFace implements SharedPreferences.OnSh
}
public int getInRangeColor() {
- if (sharedPrefs.getBoolean("dark", false)) {
+ if (sharedPrefs.getBoolean("dark", true)) {
return Color.argb(255, 120, 255, 120);
} else {
return Color.argb(255, 0, 240, 0);
@@ -351,7 +358,7 @@ public class CircleWatchface extends WatchFace implements SharedPreferences.OnSh
}
public int getHighColor() {
- if (sharedPrefs.getBoolean("dark", false)) {
+ if (sharedPrefs.getBoolean("dark", true)) {
return Color.argb(255, 255, 255, 120);
} else {
return Color.argb(255, 255, 200, 0);
@@ -360,7 +367,7 @@ public class CircleWatchface extends WatchFace implements SharedPreferences.OnSh
}
public int getBackgroundColor() {
- if (sharedPrefs.getBoolean("dark", false)) {
+ if (sharedPrefs.getBoolean("dark", true)) {
return Color.BLACK;
} else {
return Color.WHITE;
@@ -369,7 +376,7 @@ public class CircleWatchface extends WatchFace implements SharedPreferences.OnSh
}
public int getTextColor() {
- if (sharedPrefs.getBoolean("dark", false)) {
+ if (sharedPrefs.getBoolean("dark", true)) {
return Color.WHITE;
} else {
return Color.BLACK;
@@ -662,7 +669,7 @@ public class CircleWatchface extends WatchFace implements SharedPreferences.OnSh
Log.d("CircleWatchface", "addReadingSoft");
double size;
int color = Color.LTGRAY;
- if (sharedPrefs.getBoolean("dark", false)) {
+ if (sharedPrefs.getBoolean("dark", true)) {
color = Color.DKGRAY;
}
@@ -680,7 +687,7 @@ public class CircleWatchface extends WatchFace implements SharedPreferences.OnSh
double size;
int color = Color.LTGRAY;
int indicatorColor = Color.DKGRAY;
- if (sharedPrefs.getBoolean("dark", false)) {
+ if (sharedPrefs.getBoolean("dark", true)) {
color = Color.DKGRAY;
indicatorColor = Color.LTGRAY;
}
@@ -700,4 +707,30 @@ public class CircleWatchface extends WatchFace implements SharedPreferences.OnSh
addArch(canvas, (float) size, offset * offsetMultiplier + 11, color, (float) (360f - size)); // Dark fill
addArch(canvas, (offset + .8f) * offsetMultiplier + 11, getBackgroundColor(), 360);
}
+
+ @Override
+ protected void onTapCommand(int tapType, int x, int y, long eventTime) {
+
+ int extra = mSgv!=null?(mSgv.getRight() - mSgv.getLeft())/2:0;
+
+ if (tapType == TAP_TYPE_TAP&&
+ x + extra >=mSgv.getLeft() &&
+ x - extra <= mSgv.getRight()&&
+ y >= mSgv.getTop() &&
+ y <= mSgv.getBottom()){
+ if (eventTime - sgvTapTime < 800){
+ Intent intent = new Intent(this, MainMenuActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ }
+ sgvTapTime = eventTime;
+ }
+ }
+
+ @Override
+ protected WatchFaceStyle getWatchFaceStyle(){
+ return new WatchFaceStyle.Builder(this).setAcceptsTapEvents(true).build();
+ }
+
+
}
\ No newline at end of file
diff --git a/wear/src/main/java/info/nightscout/androidaps/Home.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home.java
similarity index 91%
rename from wear/src/main/java/info/nightscout/androidaps/Home.java
rename to wear/src/main/java/info/nightscout/androidaps/watchfaces/Home.java
index e84098a341..ba557f200b 100644
--- a/wear/src/main/java/info/nightscout/androidaps/Home.java
+++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home.java
@@ -1,5 +1,6 @@
-package info.nightscout.androidaps;
+package info.nightscout.androidaps.watchfaces;
+import android.content.Intent;
import android.graphics.Color;
import android.support.v4.content.ContextCompat;
import android.support.wearable.watchface.WatchFaceStyle;
@@ -7,9 +8,13 @@ import android.view.LayoutInflater;
import com.ustwo.clockwise.common.WatchMode;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.interaction.menus.MainMenuActivity;
+
public class Home extends BaseWatchFace {
private long chartTapTime = 0;
+ private long sgvTapTime = 0;
@Override
public void onCreate() {
@@ -22,6 +27,8 @@ public class Home extends BaseWatchFace {
@Override
protected void onTapCommand(int tapType, int x, int y, long eventTime) {
+ int extra = mSgv!=null?(mSgv.getRight() - mSgv.getLeft())/2:0;
+
if (tapType == TAP_TYPE_TAP&&
x >=chart.getLeft() &&
x <= chart.getRight()&&
@@ -31,6 +38,17 @@ public class Home extends BaseWatchFace {
changeChartTimeframe();
}
chartTapTime = eventTime;
+ } else if (tapType == TAP_TYPE_TAP&&
+ x + extra >=mSgv.getLeft() &&
+ x - extra <= mSgv.getRight()&&
+ y >= mSgv.getTop() &&
+ y <= mSgv.getBottom()){
+ if (eventTime - sgvTapTime < 800){
+ Intent intent = new Intent(this, MainMenuActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ }
+ sgvTapTime = eventTime;
}
}
diff --git a/wear/src/main/java/info/nightscout/androidaps/LargeHome.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/LargeHome.java
similarity index 85%
rename from wear/src/main/java/info/nightscout/androidaps/LargeHome.java
rename to wear/src/main/java/info/nightscout/androidaps/watchfaces/LargeHome.java
index 9f412702d4..2cb09c9b7b 100644
--- a/wear/src/main/java/info/nightscout/androidaps/LargeHome.java
+++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/LargeHome.java
@@ -1,13 +1,20 @@
-package info.nightscout.androidaps;
+package info.nightscout.androidaps.watchfaces;
+import android.content.Intent;
import android.graphics.Color;
import android.support.v4.content.ContextCompat;
+import android.support.wearable.watchface.WatchFaceStyle;
import android.view.LayoutInflater;
import com.ustwo.clockwise.common.WatchMode;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.interaction.menus.MainMenuActivity;
+
public class LargeHome extends BaseWatchFace {
+ private long sgvTapTime = 0;
+
@Override
public void onCreate() {
super.onCreate();
@@ -16,6 +23,30 @@ public class LargeHome extends BaseWatchFace {
performViewSetup();
}
+ @Override
+ protected void onTapCommand(int tapType, int x, int y, long eventTime) {
+
+ int extra = mSgv!=null?(mSgv.getRight() - mSgv.getLeft())/2:0;
+
+ if (tapType == TAP_TYPE_TAP&&
+ x + extra >=mSgv.getLeft() &&
+ x - extra <= mSgv.getRight()&&
+ y >= mSgv.getTop() &&
+ y <= mSgv.getBottom()){
+ if (eventTime - sgvTapTime < 800){
+ Intent intent = new Intent(this, MainMenuActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ }
+ sgvTapTime = eventTime;
+ }
+ }
+
+ @Override
+ protected WatchFaceStyle getWatchFaceStyle(){
+ return new WatchFaceStyle.Builder(this).setAcceptsTapEvents(true).build();
+ }
+
@Override
protected void setColorDark(){
mLinearLayout.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.dark_mLinearLayout));
diff --git a/wear/src/main/res/drawable-hdpi/ic_cancel.png b/wear/src/main/res/drawable-hdpi/ic_cancel.png
new file mode 100644
index 0000000000..f3f1437a88
Binary files /dev/null and b/wear/src/main/res/drawable-hdpi/ic_cancel.png differ
diff --git a/wear/src/main/res/drawable-hdpi/ic_confirm.png b/wear/src/main/res/drawable-hdpi/ic_confirm.png
new file mode 100644
index 0000000000..757596cba2
Binary files /dev/null and b/wear/src/main/res/drawable-hdpi/ic_confirm.png differ
diff --git a/wear/src/main/res/drawable-hdpi/ic_toggle_off.png b/wear/src/main/res/drawable-hdpi/ic_toggle_off.png
new file mode 100644
index 0000000000..ea0e7e636e
Binary files /dev/null and b/wear/src/main/res/drawable-hdpi/ic_toggle_off.png differ
diff --git a/wear/src/main/res/drawable-hdpi/ic_toggle_on.png b/wear/src/main/res/drawable-hdpi/ic_toggle_on.png
new file mode 100644
index 0000000000..dfde503b59
Binary files /dev/null and b/wear/src/main/res/drawable-hdpi/ic_toggle_on.png differ
diff --git a/wear/src/main/res/drawable-mdpi/ic_cancel.png b/wear/src/main/res/drawable-mdpi/ic_cancel.png
new file mode 100644
index 0000000000..a564bff322
Binary files /dev/null and b/wear/src/main/res/drawable-mdpi/ic_cancel.png differ
diff --git a/wear/src/main/res/drawable-mdpi/ic_confirm.png b/wear/src/main/res/drawable-mdpi/ic_confirm.png
new file mode 100644
index 0000000000..b7887421b6
Binary files /dev/null and b/wear/src/main/res/drawable-mdpi/ic_confirm.png differ
diff --git a/wear/src/main/res/drawable-mdpi/ic_toggle_off.png b/wear/src/main/res/drawable-mdpi/ic_toggle_off.png
new file mode 100644
index 0000000000..a7598b03ba
Binary files /dev/null and b/wear/src/main/res/drawable-mdpi/ic_toggle_off.png differ
diff --git a/wear/src/main/res/drawable-mdpi/ic_toggle_on.png b/wear/src/main/res/drawable-mdpi/ic_toggle_on.png
new file mode 100644
index 0000000000..ad595bcc8f
Binary files /dev/null and b/wear/src/main/res/drawable-mdpi/ic_toggle_on.png differ
diff --git a/wear/src/main/res/drawable-nodpi/ic_icon.png b/wear/src/main/res/drawable-nodpi/ic_icon.png
deleted file mode 100755
index 700e274f5b..0000000000
Binary files a/wear/src/main/res/drawable-nodpi/ic_icon.png and /dev/null differ
diff --git a/wear/src/main/res/drawable-xhdpi/ic_cancel.png b/wear/src/main/res/drawable-xhdpi/ic_cancel.png
new file mode 100644
index 0000000000..1e20754390
Binary files /dev/null and b/wear/src/main/res/drawable-xhdpi/ic_cancel.png differ
diff --git a/wear/src/main/res/drawable-xhdpi/ic_confirm.png b/wear/src/main/res/drawable-xhdpi/ic_confirm.png
new file mode 100644
index 0000000000..4609b2d620
Binary files /dev/null and b/wear/src/main/res/drawable-xhdpi/ic_confirm.png differ
diff --git a/wear/src/main/res/drawable-xhdpi/ic_toggle_off.png b/wear/src/main/res/drawable-xhdpi/ic_toggle_off.png
new file mode 100644
index 0000000000..20ed7755db
Binary files /dev/null and b/wear/src/main/res/drawable-xhdpi/ic_toggle_off.png differ
diff --git a/wear/src/main/res/drawable-xhdpi/ic_toggle_on.png b/wear/src/main/res/drawable-xhdpi/ic_toggle_on.png
new file mode 100644
index 0000000000..b1bc44307f
Binary files /dev/null and b/wear/src/main/res/drawable-xhdpi/ic_toggle_on.png differ
diff --git a/wear/src/main/res/drawable-xxhdpi/ic_cancel.png b/wear/src/main/res/drawable-xxhdpi/ic_cancel.png
new file mode 100644
index 0000000000..89e1bd0695
Binary files /dev/null and b/wear/src/main/res/drawable-xxhdpi/ic_cancel.png differ
diff --git a/wear/src/main/res/drawable-xxhdpi/ic_confirm.png b/wear/src/main/res/drawable-xxhdpi/ic_confirm.png
new file mode 100644
index 0000000000..0696468e1a
Binary files /dev/null and b/wear/src/main/res/drawable-xxhdpi/ic_confirm.png differ
diff --git a/wear/src/main/res/drawable-xxhdpi/ic_toggle_off.png b/wear/src/main/res/drawable-xxhdpi/ic_toggle_off.png
new file mode 100644
index 0000000000..8d34740c21
Binary files /dev/null and b/wear/src/main/res/drawable-xxhdpi/ic_toggle_off.png differ
diff --git a/wear/src/main/res/drawable-xxhdpi/ic_toggle_on.png b/wear/src/main/res/drawable-xxhdpi/ic_toggle_on.png
new file mode 100644
index 0000000000..5529859ed0
Binary files /dev/null and b/wear/src/main/res/drawable-xxhdpi/ic_toggle_on.png differ
diff --git a/wear/src/main/res/drawable/circle.xml b/wear/src/main/res/drawable/circle.xml
new file mode 100644
index 0000000000..9f5b7f5fab
--- /dev/null
+++ b/wear/src/main/res/drawable/circle.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wear/src/main/res/drawable/ic_action_add.png b/wear/src/main/res/drawable/ic_action_add.png
new file mode 100644
index 0000000000..ca13239a7d
Binary files /dev/null and b/wear/src/main/res/drawable/ic_action_add.png differ
diff --git a/wear/src/main/res/drawable/ic_action_minus.png b/wear/src/main/res/drawable/ic_action_minus.png
new file mode 100644
index 0000000000..e68aed5a2f
Binary files /dev/null and b/wear/src/main/res/drawable/ic_action_minus.png differ
diff --git a/wear/src/main/res/drawable/nslogo_background.png b/wear/src/main/res/drawable/nslogo_background.png
new file mode 100644
index 0000000000..e550aa164d
Binary files /dev/null and b/wear/src/main/res/drawable/nslogo_background.png differ
diff --git a/wear/src/main/res/drawable/settings_background.xml b/wear/src/main/res/drawable/settings_background.xml
new file mode 100644
index 0000000000..97632802ac
--- /dev/null
+++ b/wear/src/main/res/drawable/settings_background.xml
@@ -0,0 +1,12 @@
+
+
+ -
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wear/src/main/res/drawable/wl_circle.xml b/wear/src/main/res/drawable/wl_circle.xml
new file mode 100644
index 0000000000..07c2ad61d3
--- /dev/null
+++ b/wear/src/main/res/drawable/wl_circle.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/wear/src/main/res/layout/action_editplusminus_item.xml b/wear/src/main/res/layout/action_editplusminus_item.xml
new file mode 100644
index 0000000000..38336ff903
--- /dev/null
+++ b/wear/src/main/res/layout/action_editplusminus_item.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/wear/src/main/res/layout/action_editplusminus_item_below.xml b/wear/src/main/res/layout/action_editplusminus_item_below.xml
new file mode 100644
index 0000000000..2f2beb50dc
--- /dev/null
+++ b/wear/src/main/res/layout/action_editplusminus_item_below.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/wear/src/main/res/layout/action_editplusminus_item_quicklefty.xml b/wear/src/main/res/layout/action_editplusminus_item_quicklefty.xml
new file mode 100644
index 0000000000..89eedd569b
--- /dev/null
+++ b/wear/src/main/res/layout/action_editplusminus_item_quicklefty.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/wear/src/main/res/layout/action_editplusminus_item_quickrighty.xml b/wear/src/main/res/layout/action_editplusminus_item_quickrighty.xml
new file mode 100644
index 0000000000..305aa32d40
--- /dev/null
+++ b/wear/src/main/res/layout/action_editplusminus_item_quickrighty.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/wear/src/main/res/layout/action_editplusminus_item_viktoria.xml b/wear/src/main/res/layout/action_editplusminus_item_viktoria.xml
new file mode 100644
index 0000000000..cef730a62d
--- /dev/null
+++ b/wear/src/main/res/layout/action_editplusminus_item_viktoria.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wear/src/main/res/layout/action_send_item.xml b/wear/src/main/res/layout/action_send_item.xml
new file mode 100644
index 0000000000..9a31d53271
--- /dev/null
+++ b/wear/src/main/res/layout/action_send_item.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/wear/src/main/res/layout/action_toggle_item.xml b/wear/src/main/res/layout/action_toggle_item.xml
new file mode 100644
index 0000000000..e36930b422
--- /dev/null
+++ b/wear/src/main/res/layout/action_toggle_item.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/wear/src/main/res/layout/actions_list_activity.xml b/wear/src/main/res/layout/actions_list_activity.xml
new file mode 100644
index 0000000000..1779f1b4ab
--- /dev/null
+++ b/wear/src/main/res/layout/actions_list_activity.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
diff --git a/wear/src/main/res/layout/activity_bigchart.xml b/wear/src/main/res/layout/activity_bigchart.xml
index 1fa3cdad8d..719b803c5e 100644
--- a/wear/src/main/res/layout/activity_bigchart.xml
+++ b/wear/src/main/res/layout/activity_bigchart.xml
@@ -8,5 +8,5 @@
android:layout_height="match_parent"
app:rectLayout="@layout/rect_activity_bigchart"
app:roundLayout="@layout/round_activity_bigchart"
- tools:context=".Home"
+ tools:context=".watchfaces.Home"
tools:deviceIds="wear"/>
diff --git a/wear/src/main/res/layout/activity_home.xml b/wear/src/main/res/layout/activity_home.xml
index 152f7869a6..a536938f68 100644
--- a/wear/src/main/res/layout/activity_home.xml
+++ b/wear/src/main/res/layout/activity_home.xml
@@ -8,5 +8,5 @@
android:layout_height="match_parent"
app:rectLayout="@layout/rect_activity_home"
app:roundLayout="@layout/round_activity_home"
- tools:context=".Home"
+ tools:context=".watchfaces.Home"
tools:deviceIds="wear"/>
diff --git a/wear/src/main/res/layout/activity_home_large.xml b/wear/src/main/res/layout/activity_home_large.xml
index 3af188265c..adff439ea1 100644
--- a/wear/src/main/res/layout/activity_home_large.xml
+++ b/wear/src/main/res/layout/activity_home_large.xml
@@ -8,5 +8,5 @@
android:layout_height="match_parent"
app:rectLayout="@layout/rect_activity_home_large"
app:roundLayout="@layout/round_activity_home_large"
- tools:context=".Home"
+ tools:context=".watchfaces.Home"
tools:deviceIds="wear"/>
diff --git a/wear/src/main/res/layout/grid_layout.xml b/wear/src/main/res/layout/grid_layout.xml
new file mode 100644
index 0000000000..2b37f71cae
--- /dev/null
+++ b/wear/src/main/res/layout/grid_layout.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wear/src/main/res/layout/list_item.xml b/wear/src/main/res/layout/list_item.xml
new file mode 100644
index 0000000000..a6193efc3e
--- /dev/null
+++ b/wear/src/main/res/layout/list_item.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
diff --git a/wear/src/main/res/layout/rect_activity_bigchart.xml b/wear/src/main/res/layout/rect_activity_bigchart.xml
index 9fa101227c..8db4a3dd15 100644
--- a/wear/src/main/res/layout/rect_activity_bigchart.xml
+++ b/wear/src/main/res/layout/rect_activity_bigchart.xml
@@ -1,7 +1,7 @@
diff --git a/wear/src/main/res/layout/rect_activity_home.xml b/wear/src/main/res/layout/rect_activity_home.xml
index 344321fea6..a069b5ed28 100644
--- a/wear/src/main/res/layout/rect_activity_home.xml
+++ b/wear/src/main/res/layout/rect_activity_home.xml
@@ -1,7 +1,7 @@
diff --git a/wear/src/main/res/layout/rect_activity_home_large.xml b/wear/src/main/res/layout/rect_activity_home_large.xml
index 20cc6ee40f..a6da174128 100644
--- a/wear/src/main/res/layout/rect_activity_home_large.xml
+++ b/wear/src/main/res/layout/rect_activity_home_large.xml
@@ -1,7 +1,7 @@
diff --git a/wear/src/main/res/layout/round_activity_bigchart.xml b/wear/src/main/res/layout/round_activity_bigchart.xml
index 9fa101227c..8db4a3dd15 100644
--- a/wear/src/main/res/layout/round_activity_bigchart.xml
+++ b/wear/src/main/res/layout/round_activity_bigchart.xml
@@ -1,7 +1,7 @@
diff --git a/wear/src/main/res/layout/round_activity_home.xml b/wear/src/main/res/layout/round_activity_home.xml
index 231a0910b8..e647175bf4 100644
--- a/wear/src/main/res/layout/round_activity_home.xml
+++ b/wear/src/main/res/layout/round_activity_home.xml
@@ -1,7 +1,7 @@
diff --git a/wear/src/main/res/layout/round_activity_home_large.xml b/wear/src/main/res/layout/round_activity_home_large.xml
index 6217af3a5c..9569d5d1ab 100644
--- a/wear/src/main/res/layout/round_activity_home_large.xml
+++ b/wear/src/main/res/layout/round_activity_home_large.xml
@@ -1,7 +1,7 @@
diff --git a/wear/src/main/res/values/colors.xml b/wear/src/main/res/values/colors.xml
index eae224ef41..0a20535687 100644
--- a/wear/src/main/res/values/colors.xml
+++ b/wear/src/main/res/values/colors.xml
@@ -1,5 +1,12 @@
+
+ #2878ff
+ #c1c1c1
+ #434343
+ #779ECB
+
+
@color/black
@color/black
diff --git a/wear/src/main/res/values/strings.xml b/wear/src/main/res/values/strings.xml
index 2462ff00a4..6edfaa4993 100644
--- a/wear/src/main/res/values/strings.xml
+++ b/wear/src/main/res/values/strings.xml
@@ -1,7 +1,8 @@
- AAPS Prefs.
+ AAPS
+ AAPS
- 1 hour
@@ -19,4 +20,27 @@
- 5
+
+
+
+ - Default
+ - Quick righty
+ - Quick lefty
+ - Modern Sparse
+
+
+
+ - 1
+ - 2
+ - 3
+ - 4
+
+
+
+
+
+ BolusActivity
+ Hello Round World!
+ Hello Square World!
+
diff --git a/wear/src/main/res/xml/preferences.xml b/wear/src/main/res/xml/preferences.xml
index 97f8bb4027..3e528e27f9 100644
--- a/wear/src/main/res/xml/preferences.xml
+++ b/wear/src/main/res/xml/preferences.xml
@@ -1,6 +1,31 @@
+
+
+
+
+
+
+
-
+
+
diff --git a/wear/wear.iml b/wear/wear.iml
deleted file mode 100644
index 0de50a9087..0000000000
--- a/wear/wear.iml
+++ /dev/null
@@ -1,161 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- generateFullDebugSources
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<<<<<<< Updated upstream
-
-
-=======
->>>>>>> Stashed changes
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file